如何通过指定包含 NA 的列在 R 中对 data.table 对象进行子集化?

要data.table通过指定包含 NA 的列来对对象进行子集化,我们可以按照以下步骤操作 -

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

  • 然后,is.na与子集函数一起使用data.table通过指定包含 NA 的列来对对象进行子集化。

示例

创建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
输出结果

执行时,上述脚本生成以下内容output(this output will vary on your system due to randomization)-

     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

data.table通过指定具有 NA 的列来子集对象

使用is.na沿着与子集的功能的子集data.table通过指定列x1和x2包含NA如下所示对象DT -

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

猜你喜欢