如何在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