【发布时间】:2020-06-19 17:31:01
【问题描述】:
我有一个 1500 obs 的 df。以及超过 600 个变量。 df 中有很多 NA,到目前为止我还没有找到替换它们的解决方案。我希望 NA 采用以前的值。如果没有之前的值,就取下面的值。
不幸的是,我已经尝试了一些解决方案,例如na.locf 等,但都没有成功。我有一个适用于平均值的解决方案。我只是无法以解决我的问题的方式重写它。
for (i in seq_len(ncol(df))) {
df[is.na(df[,i]), i] <- mean(df[,i], na.rm = TRUE)
}
也许这里有人已经使用它并且可以帮助我。
这是一个例子:
Share1 Share2 Share3 Share4 Share5
2016-01-04 49.5010 21.640 90.0100 93.676 NA
2016-01-05 49.7855 21.987 88.5695 92.329 82.459
2016-01-06 49.0595 NA 87.4735 88.601 81.432
2016-01-07 47.7785 NA 82.8735 83.725 78.934
2016-01-08 47.7435 20.260 82.9275 82.609 79.000
2016-01-09 NA 20.380 83.0530 83.503 NA
2016-01-10 47.7770 20.475 82.9860 83.325 79.645
2016-01-11 48.8095 20.844 83.0320 83.513 78.672
2016-01-12 48.9545 NA 83.7325 85.732 81.090
2016-01-13 48.0195 20.464 82.6305 81.151 81.178
【问题讨论】: