如何删除R中所有具有NA的行?
要删除所有具有NA的行,我们可以使用na.omit函数。例如,如果我们有一个名为df的数据框,其中包含一些NA值,那么我们可以使用命令删除包含至少一个NA的所有行。na.omit(df)
这意味着如果我们在数据框中有不止一列,那么包含一个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