【发布时间】:2021-06-04 12:47:59
【问题描述】:
我有一个带有一些 NA 的向量,我想用之前的非 NA 值减去 0.1 替换其中的一些 NA。如果 NA 字符串长于某个长度(例如,2),我也不想替换 NA。这是一个例子
x <- c(1:3, NA, 4, NA, NA, 5, NA, NA, NA, 6, NA)
我想制作一个看起来像这样的向量
x_prime <- c(1:3, 2.9, 4, 3.9, 3.8, 5, NA, NA, NA, 6, 5.9)
打印出来的样子如下:
> x_prime
[1] 1.0 2.0 3.0 2.9 4.0 3.9 3.8 5.0 NA NA NA 6.0 5.9
作为一个额外的复杂因素,我想跟踪我修改的索引,所以我还想要一个看起来像的向量
idx <- c(4, 6, 7, 13)
如果在 NA 中的第一个位置(以及所有领先的 NA),我们可以离开它并且什么都不做。
我在 SO 上发现了一些类似的问题,例如this,并且我尝试了与那里提供的功能类似的功能,但没有成功。有任何想法吗?提前谢谢你。
【问题讨论】:
-
idx表示要替换最后一个位置。但是x_prime显示NA而不是5.9。请澄清。 - 如果第一个位置是NA并且没有先前的值,应该怎么办?请说明。 -
为什么最后一个
NA没有被 5.9 替换?它的长度小于2。 -
我进行了编辑以解决此问题并解释说我们不需要更改领先的 NA
标签: r vector na missing-data