在R中前向填充和后向填充数据框

12

我有一个数据框,其中数据如下所示

Col1    Col2 
20      NA    
25      NA     
15      NA
NA      10
NA      15

等等……我希望将其重塑为以下形式

Col1     Col2
20        10
25        10
15        10
15        10
15        15

基本上是使用第一次出现的非 NA 值前向或后向填充 NA 值。我尝试了 在 R 中在一组行中前向和后向传递最后一个因素观察 的变体,但无法使其工作...... 预先感谢!


10
tidyr::fill 可以实现向下填充,例如 df %>% fill(everything()) %>% fill(everything(), .direction = 'up') - alistaire
@alistaire:谢谢!我相信当你提到everything()时,它的意思是使用ncol(df)来考虑在DF中对所有列执行此操作。 - FlyingPickle
everything()是dplyr中的一个辅助函数,它告诉函数对所有列进行操作。您可以在dplyr::select中以任何方式指定列。 - alistaire
1个回答

11
我们可以使用来自zoo的na.locf来实现这一点。
library(zoo)
na.locf(na.locf(df1), fromLast = TRUE)
#  Col1 Col2
#1   20   10
#2   25   10
#3   15   10
#4   15   10
#5   15   15

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接