如何在 R 中删除所有包含 NA 的行?
要删除所有包含 NA 的行,我们可以使用 na.omit() 函数。例如,如果我们有一个名为 df 的数据框,其中包含一些 NA 值,那么我们可以使用命令 na.omit(df) 删除所有包含至少一个 NA 的行。
这意味着如果数据框中有多列,则包含任何一个 NA 的行都将被删除。查看下面的示例以了解其工作原理。
示例 1
考虑以下数据框:
x1<-sample(c(NA,5,2),20,replace=TRUE) x2<-sample(c(NA,10,100),20,replace=TRUE) df1<-data.frame(x1,x2) df1
创建以下数据框
x1 x2 1 5 10 2 NA 10 3 5 100 4 NA NA 5 5 100 6 2 NA 7 2 10 8 5 100 9 NA 10 10 2 10 11 5 NA 12 NA 100 13 NA NA 14 2 NA 15 NA 10 16 5 100 17 2 NA 18 NA NA 19 NA 10 20 NA NA
要从上面创建的数据框的 df1 中删除包含至少一个 NA 的行,请将以下代码添加到上述代码段中:
x1<-sample(c(NA,5,2),20,replace=TRUE) x2<-sample(c(NA,10,100),20,replace=TRUE) df1<-data.frame(x1,x2) na.omit(df1)
输出
如果您将以上所有代码段作为一个程序执行,则会生成以下输出:
x1 x2 1 5 10 3 5 100 5 5 100 7 2 10 8 5 100 10 2 10 16 5 100
示例 2
以下代码段创建了一个示例数据框:
y1<-sample(c(NA,rnorm(2)),20,replace=TRUE) y2<-sample(c(NA,rnorm(2)),20,replace=TRUE) y3<-sample(c(NA,rnorm(2)),20,replace=TRUE) df2<-data.frame(y1,y2,y3) df2
创建以下数据框
y1 y2 y3 1 NA -1.779384 NA 2 NA -1.779384 0.7194928 3 0.5985389 0.389119 1.2007584 4 NA NA NA 5 1.2319630 -1.779384 1.2007584 6 NA NA NA 7 0.5985389 0.389119 1.2007584 8 0.5985389 NA 1.2007584 9 0.5985389 0.389119 0.7194928 10 NA NA 0.7194928 11 NA NA NA 12 1.2319630 NA 0.7194928 13 0.5985389 NA 0.7194928 14 1.2319630 NA 0.7194928 15 1.2319630 -1.779384 0.7194928 16 0.5985389 -1.779384 1.2007584 17 0.5985389 -1.779384 0.7194928 18 0.5985389 0.389119 1.2007584 19 NA -1.779384 NA 20 0.5985389 0.389119 1.2007584
要从上面创建的数据框的 df2 中删除包含至少一个 NA 的行,请将以下代码添加到上述代码段中:
y1<-sample(c(NA,rnorm(2)),20,replace=TRUE) y2<-sample(c(NA,rnorm(2)),20,replace=TRUE) y3<-sample(c(NA,rnorm(2)),20,replace=TRUE) df2<-data.frame(y1,y2,y3) na.omit(df2)
输出
如果您将以上所有代码段作为一个程序执行,则会生成以下输出:
y1 y2 y3 3 0.5985389 0.389119 1.2007584 5 1.2319630 -1.779384 1.2007584 7 0.5985389 0.389119 1.2007584 9 0.5985389 0.389119 0.7194928 15 1.2319630 -1.779384 0.7194928 16 0.5985389 -1.779384 1.2007584 17 0.5985389 -1.779384 0.7194928 18 0.5985389 0.389119 1.2007584 20 0.5985389 0.389119 1.2007584
广告