我有一个这种形式的大型数据框:
var1<-c("a","b")
var1<-c(rep(var1,2),rep(var1,2))
var2<-c(rep(c(2013,2013),2),rep(c(2014,2014),2))
df<-data.frame(var1,var2)
df$var3<-NA
df$var3[1]<-"x"
df$var3[3]<-"y"
df$var3[5]<-"x"
df$var3[7]<-"y"
df
var1 var2 var3
1 a 2013 x
2 b 2013 <NA>
3 a 2013 y
4 b 2013 <NA>
5 a 2014 x
6 b 2014 <NA>
7 a 2014 y
8 b 2014 <NA>
我现在想摆脱缺失的价值并以我能得到的方式取而代之:
var1 var2 var3
1 a 2013 x
2 b 2013 x
3 a 2013 y
4 b 2013 y
5 a 2014 x
6 b 2014 x
7 a 2014 y
8 b 2014 y
>
有人可以帮我完成这项任务。我的数据库非常大
注意:&#39; var2&#39;是一个角色
答案 0 :(得分:1)
您可以从zoo
包中尝试此操作。此函数继续列中的最后一个非NA值。
library(zoo)
df$var3 <- na.locf(df$var3)