仅在连续缺失值是2个或更少时,如何估算缺失值,并使用R中的na.locf将其他缺失值保留为NA? 例如,
x<-c(2,1,NA,4,4,NA,NA,NA)
输出应该像
2,1,1,4,4,NA,NA,NA
第一个NA由先前的可用“ 1”来插补,而后3个NA不应被插补。
答案 0 :(得分:5)
na.locf
中的 zoo
有一个'maxgap'参数,因此您可以轻松地做到:
library(zoo)
na.locf(x, maxgap = 2, na.rm = FALSE)
[1] 2 1 1 4 4 NA NA NA
答案 1 :(得分:0)
我们可以使用rleid
中的data.table
来创建组,使用ave
来计算每个组的length
,并且只有当值是该组的na.locf
和NA
小于等于2。
length