【发布时间】:2011-10-12 02:59:35
【问题描述】:
我有一个问题,一个向量在开始时有一堆 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
我想删除我认为不可靠的前 3 个非 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 值何时开始。我该怎么做呢? IE如何找出第一个非NA值的索引位置?
为了完整起见,我的数据实际上排列在一个数据框中,列中有很多这些向量,每个向量可以有不同的非 NA 起始位置。此外,一旦数据开始,可能会有零星的 NA 进一步向下,这使我无法简单地计算它们的数量,作为解决方案。
【问题讨论】:
-
有没有一种有效的方法可以在找到第一个时停止搜索?
标签: r