我有一个大数据集,其简短版本如下所示
Col1 Col2
0 1
1 0.9971
4 NA
6 NA
7 NA
14 NA
18 0.9951
22 NA
25 NA
46 0.9941
57 NA
59 NA
60 0.9921
对于Col2中那些缺少的值,我希望将NA从同一列Col2中的值替换为它上面的值。最终的数据集如下所示。
Col1 Col2
0 1
1 0.9971
4 0.9971
6 0.9971
7 0.9971
14 0.9971
18 0.9951
22 0.9951
25 0.9951
46 0.9941
57 0.9941
59 0.9941
60 0.9921
答案 0 :(得分:3)
在包na.locf
中有一个函数zoo
(不进行最后一个观测):
> zoo::na.locf(df)
Col1 Col2
1 0 1.0000
2 1 0.9971
3 4 0.9971
4 6 0.9971
5 7 0.9971
6 14 0.9971
7 18 0.9951
8 22 0.9951
9 25 0.9951
10 46 0.9941
11 57 0.9941
12 59 0.9941
13 60 0.9921