如何在R数据帧的列之一中对不包含NA和空白的行进行子集化?

我们有可能获得其中一列包含NA以及空白的数据集,因此,有必要处理这些值。处理这些值的方法之一是选择没有它们的行。这可以通过在单个方括号中进行子设置来完成。

示例

请看以下数据帧-

> set.seed(1)
> x1<-sample(1:50,20)
> x2<-rep(c(1,"",3,4),times=5)
> x3<-rep(c(5,NA,10,"",20),each=4)
> df<-data.frame(x1,x2,x3)
> df
  x1 x2 x3
1 4 1 5
2 39 5
3 1 3 5
4 34 4 5
5 23 1 <NA>
6 43 <NA>
7 14 3 <NA>
8 18 4 <NA>
9 33 1 10
10 21 10
11 41 3 10
12 10 4 10
13 7 1
14 9
15 15 3
16 40 4
17 25 1 20
18 47 20
19 12 3 20
20 36 4 20

子集行,其中x3既不是NA也不是空白-

> df[!(is.na(df$x3) | df$x3==""), ]
x1 x2 x3
1 4 1 5
2 39 5
3 1 3 5
4 34 4 5
9 33 1 10
10 21 10
11 41 3 10
12 10 4 10
17 25 1 20
18 47 20
19 12 3 20
20 36 4 20

子集x2不为空的行-

> df[!(df$x2==""), ]
x1 x2 x3
1 4 1 5
3 1 3 5
4 34 4 5
5 23 1 <NA>
7 14 3 <NA>
8 18 4 <NA>
9 33 1 10
11 41 3 10
12 10 4 10
13 7 1
15 15 3
16 40 4
17 25 1 20
19 12 3 20
20 36 4 20