如何通过指定包含 NA 的列来筛选 R 数据框?


要通过指定包含 NA 的列来筛选 R 数据框,我们可以按照以下步骤操作:

  • 首先,创建一个包含一些列(其中包含 NA)的数据框。

  • 然后,使用 is.na 和 subset 函数来筛选数据框,并指定包含 NA 的列。

示例

创建数据框

让我们创建一个如下所示的数据框:

x<-sample(c(NA,1,2,3),25,replace=TRUE)
y<-sample(c(NA,10,12,20),25,replace=TRUE)
z<-sample(c(NA,100,120,180),25,replace=TRUE)
a<-sample(c(NA,80,77,62),25,replace=TRUE)
df<-data.frame(x,y,z,a)
df

输出

执行上述脚本后,会生成以下输出(由于随机化,此输出在您的系统上可能会有所不同):

   x  y    z   a
1  1  NA  100  62
2  2  NA   NA  62
3  3  20  120  77
4  NA 20  180  62
5  1  NA   NA  NA
6  2  20   NA  62
7  3  10  180  62
8  2  10  120  62
9  1  12   NA  77
10 3  NA  100  62
11 1  10   NA  77
12 NA 12  180  77
13 NA NA  180  77
14 2  NA  180  62
15 3  10   NA  80
16 3  NA  100  80
17 1  20  120  80
18 1  10  120  80
19 1  12  100  NA
20 1  12  100  NA
21 1  10  180  77
22 1  12   NA  80
23 1  NA   NA  80
24 NA 10  100  NA
25 3  20   NA  62

通过指定包含 NA 的列来筛选数据框

使用 is.na 和 subset 函数来筛选数据框 df,并指定包含 NA 的列 x 和 z,如下所示:

x<-sample(c(NA,1,2,3),25,replace=TRUE)
y<-sample(c(NA,10,12,20),25,replace=TRUE)
z<-sample(c(NA,100,120,180),25,replace=TRUE)
a<-sample(c(NA,80,77,62),25,replace=TRUE)
df<-data.frame(x,y,z,a)
subset(df,is.na(x)|is.na(z))

输出

   x  y  z   a
2  2  NA  NA  62
4  NA 20 180  62
5  1  NA  NA  NA
6  2  20  NA  62
9  1  12  NA  77
11 1  10  NA  77
12 NA 12 180  77
13 NA NA 180  77
15 3  10  NA  80
22 1  12  NA  80
23 1  NA  NA  80
24 NA 10 100  NA
25 3  20  NA  62

更新时间: 2021-11-08

323 次浏览

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告