如何在R中通过指定包含NA的列来筛选data.table对象?


要通过指定包含NA的列来筛选data.table对象,我们可以按照以下步骤操作:

  • 首先,创建一个包含一些包含NA的列的data.table对象。

  • 然后,使用is.na和subset函数来筛选data.table对象,指定包含NA的列x1和x2。

示例

创建data.table对象

让我们创建一个如下所示的data.table对象:

library(data.table)
x1<-sample(c(NA,round(rnorm(2),2)),25,replace=TRUE)
x2<-sample(c(NA,round(rnorm(3),2)),25,replace=TRUE)
x3<-sample(c(NA,round(rnorm(3),2)),25,replace=TRUE)
x4<-sample(c(NA,round(rnorm(2),2)),25,replace=TRUE)
DT<-data.table(x1,x2,x3,x4)
DT

输出

执行上述脚本后,将生成以下输出(由于随机化,此输出可能因您的系统而异):

     x1     x2   x3    x4
1:  -2.34 -0.57  NA    NA
2:  -2.34 -0.57 -0.85 -0.47
3:   NA   -0.57  NA   -0.47
4:  -2.34 -0.57 -0.84  0.69
5:   NA   -0.57  1.82  0.69
6:   1.14 -2.03  1.82  NA
7:  -2.34  NA   -0.84  NA
8:   1.14  0.63 -0.85  NA
9:   NA    NA   -0.84 -0.47
10:  1.14  NA    NA   -0.47
11: -2.34  NA   -0.84  NA
12:  NA    NA   -0.85  NA
13:  1.14  0.63 -0.84  NA
14: -2.34  0.63 -0.84  NA
15: -2.34 -2.03  1.82  NA
16:  NA   -2.03  1.82  NA
17:  NA    NA    NA   -0.47
18:  1.14 -2.03  NA    NA
19:  NA    0.63  1.82  NA
20: -2.34  NA    1.82 -0.47
21:  1.14  0.63  NA    NA
22:  1.14  NA   -0.85 -0.47
23: -2.34 -2.03  NA   -0.47
24:  1.14  0.63  1.82 -0.47
25: -2.34  NA    NA    0.69
    x1     x2     x3   x4

通过指定包含NA的列来筛选data.table对象

使用is.na和subset函数来筛选data.table对象DT,指定包含NA的列x1和x2,如下所示:

library(data.table)
x1<-sample(c(NA,round(rnorm(2),2)),25,replace=TRUE)
x2<-sample(c(NA,round(rnorm(3),2)),25,replace=TRUE)
x3<-sample(c(NA,round(rnorm(3),2)),25,replace=TRUE)
x4<-sample(c(NA,round(rnorm(2),2)),25,replace=TRUE)
DT<-data.table(x1,x2,x3,x4)
subset(DT,is.na(x1)|is.na(x2))

输出

     x1   x2    x3    x4
1:   NA  -0.57 NA   -0.47
2:   NA  -0.57 1.82  0.69
3:  -2.34 NA  -0.84  NA
4:   NA   NA  -0.84 -0.47
5:   1.14 NA   NA   -0.47
6:  -2.34 NA  -0.84  NA
7:   NA   NA  -0.85  NA
8:   NA  -2.03 1.82  NA
9:   NA   NA   NA   -0.47
10:  NA   0.63 1.82  NA
11: -2.34 NA   1.82 -0.47
12:  1.14 NA  -0.85 -0.47
13: -2.34 NA   NA    0.69

更新于:2021年11月15日

279 次浏览

启动你的职业生涯

通过完成课程获得认证

开始学习
广告