我有一个问题,向量的开头有很多NA,之后才是数据。然而我的数据特别之处在于,前n个非NA值可能不可靠,因此我想删除它们并用NA替换它们。
例如,如果我有一个长度为20的向量,并且非NA值从索引位置4开始:
> z
[1] NA NA NA -1.64801942 -0.57209233 0.65137286 0.13324344 -2.28339326
[9] 1.29968050 0.10420776 0.54140323 0.64418164 -1.00949072 -1.16504423 1.33588892 1.63253646
[17] 2.41181291 0.38499825 -0.04869589 0.04798073
我想要删除前三个非NA值,因为我认为它们是不可靠的,以得到如下结果:
> z
[1] NA NA NA NA NA NA 0.13324344 -2.28339326
[9] 1.29968050 0.10420776 0.54140323 0.64418164 -1.00949072 -1.16504423 1.33588892 1.63253646
[17] 2.41181291 0.38499825 -0.04869589 0.04798073
当然,我需要一个通用的解决方案,而且我从不知道第一个非NA值是什么时候开始的。 我应该如何做?也就是说,我如何找到第一个非NA值的索引位置?
为了完整起见,我的数据实际上是排列在数据框中的,每一列都有很多这样的向量,并且每个向量的非NA起始位置可能不同。 此外,一旦数据开始,可能会出现零散的NA值,这阻止了我简单地计算它们的数量作为解决方案。