首页 > 解决方案 > r 从缺失值上方的单元格中复制值

问题描述

我有一个大数据集,其较短的版本如下

 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

标签: rreplacemissing-data

解决方案


包中有一个功能na.locf(NA最后的观察结转)可以做到这一点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

推荐阅读