r从缺少的值上方的单元格中复制值

时间:2018-10-05 14:57:51

标签: r replace missing-data

我有一个大数据集,其简短版本如下所示

 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

1 个答案:

答案 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