用该列R中的最后一个非NA值填写NA值

时间:2020-03-05 02:52:55

标签: r nas

我有一个带有NA的数据框。我想用先前的已知值填充NA,但如果没有先前的值适用,则应保留NA。

示例:

df <- data.frame(col1 = c(1,2,3,4,5), col2  = c("a", NA, NA , "b", NA), col3 = c(NA, "B", NA, "C", NA), col4 = c(NA, NA, "1", "2", NA)) 

我尝试了动物园图书馆的na.locf函数

do(na.locf(.))

但是,这将删除具有NA且没有先前非NA值的行。结果应该是:

col1 col2 col3 col4
1     a    NA   NA
2     a    B    NA
3     a    B    1
4     b    C    2
5     b    C    2

可能的解决方案是将na.locf函数应用于所有列并将其放入列表中,从而导致列表元素具有不同的行长度。

df_list <- apply(df, 2, na.locf)

第二步,应将所有NA的每个元素的/附加行添加到/之前。但是,我无法执行此步骤。

任何想法都是解决问题的最佳方法是什么?

0 个答案:

没有答案