当我们在两列中都有替代的缺失值时,这会使数据框看起来也充满了列中替代位置的值。在这种情况下,我们可能希望删除那些丢失的值,以使数据帧变得完整而没有任何丢失的值。为此,我们可以将na.omit函数与transform函数一起使用,如以下示例所示。
请看以下数据帧-
x1<-rep(c(NA,5),times=10) x2<-rep(c(1,NA),times=10) df1<-data.frame(x1,x2) df1
输出结果
x1 x2 1 NA 1 2 5 NA 3 NA 1 4 5 NA 5 NA 1 6 5 NA 7 NA 1 8 5 NA 9 NA 1 10 5 NA 11 NA 1 12 5 NA 13 NA 1 14 5 NA 15 NA 1 16 5 NA 17 NA 1 18 5 NA 19 NA 1 20 5 NA
使用单行代码替换两列中的NA-
df1<-na.omit(transform(df1,x2=c(NA,x2[-nrow(df1)]))) df1
输出结果
x1 x2 2 5 1 4 5 1 6 5 1 8 5 1 10 5 1 12 5 1 14 5 1 16 5 1 18 5 1 20 5 1
让我们看另一个例子-
y1<-rep(c(15,NA,25,NA),times=5) y2<-rep(c(NA,414,NA,425),times=5) df2<-data.frame(y1,y2) df2
输出结果
y1 y2 1 15 NA 2 NA 414 3 25 NA 4 NA 425 5 15 NA 6 NA 414 7 25 NA 8 NA 425 9 15 NA 10 NA 414 11 25 NA 12 NA 425 13 15 NA 14 NA 414 15 25 NA 16 NA 425 17 15 NA 18 NA 414 19 25 NA 20 NA 425
使用单行代码替换两列中的NA-
df2<-na.omit(transform(df2,y2=c(NA,y2[-nrow(df2)]))) df2
输出结果
y1 y2 3 25 414 5 15 425 7 25 414 9 15 425 11 25 414 13 15 425 15 25 414 17 15 425 19 25 414