如何在R中省略缺失值并将值移动到适当位置以补全数据框结构?
当我们在两列中存在交替的缺失值时,这使得数据框看起来在列中的交替位置也填充了值。在这种情况下,我们可能希望删除这些缺失值,以便数据框在没有任何缺失值的情况下完整。为此,我们可以使用带有transform函数的na.omit函数,如下例所示。
示例
考虑以下数据框:
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
广告