r 从缺失值上方的单元格中复制值
r Copy values from a cell above the missing value
我有一个很大的数据集,它的较短版本如下
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
在包 zoo
:
中有一个函数 na.locf
(不适用最后的观察结转)
> 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
我有一个很大的数据集,它的较短版本如下
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
在包 zoo
:
na.locf
(不适用最后的观察结转)
> 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