如何通过指定包含 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(thisoutputwillvaryonyoursystemduetorandomization)-
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