我们有可能获得其中一列包含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