如何使用 R 中的 NA 删除 data.table 对象中的行?
如果一行包含缺失值,那么它们的总和将不是有限的,因此,我们可以is.finite对data.table对象使用函数来删除带有 NA 的行。例如,如果我们有一个data.table名为 DT的对象,其中包含一些带有 NA 的行,那么可以使用 DT[is.finite( rowSums(DT))]来删除这些行。
示例 1
加载data.table包并创建一个data.table对象 -
> library(data.table)输出结果> x1<-sample(c(1,NA),20,replace=TRUE)
> x2<-rpois(20,5)
> DT1<-data.table(x1,x2)
> DT1
x1 x21: 1 2
2: NA 4
3: 1 2
4: NA 5
5: 1 6
6: 1 8
7: NA 3
8: 1 5
9: 1 6
10: 1 6
11: NA 5
12: 1 4
13: NA 8
14: NA 5
15: 1 4
16: NA 5
17: NA 4
18: 1 5
19: 1 8
20: 1 5
从 DT1 中删除包含 NA 的行 -
> DT1[is.finite(rowSums(DT1))]输出结果
x1 x21: 1 2
2: 1 2
3: 1 6
4: 1 8
5: 1 5
6: 1 6
7: 1 6
8: 1 4
9: 1 4
10: 1 5
11: 1 8
12: 1 5
例2
> y1<-sample(c(5,NA),20,replace=TRUE)输出结果> y2<-rnorm(20)
> DT2<-data.table(y1,y2)
> DT2
y1 y21: NA -0.1011854033
2: NA 0.0852494741
3: 5 -3.0690178687
4: NA -0.2443067757
5: NA -1.7802490517
6: 5 -0.8969211846
7: 5 -0.0414789991
8: 5 1.7043093000
9: 5 -0.2734151106
10: 5 0.5297258605
11: 5 -0.3614407993
12: 5 0.4282377599
13: 5 -0.9532251956
14: 5 -2.6958281110
15: 5 -0.5990272270
16: 5 0.3634742009
17: NA 0.2436549088
18: NA -0.0004956819
19: 5 0.8576350551
20: 5 -0.5816740589
从 DT2 中删除包含 NA 的行 -
> DT2[is.finite(rowSums(DT2))]输出结果
y1 y21: 5 -3.0690179
2: 5 -0.8969212
3: 5 -0.0414790
4: 5 1.7043093
5: 5 -0.2734151
6: 5 0.5297259
7: 5 -0.3614408
8: 5 0.4282378
9: 5 -0.9532252
10: 5 -2.6958281
11: 5 -0.5990272
12: 5 0.3634742
13: 5 0.8576351
14: 5 -0.5816741
以上是 如何使用 R 中的 NA 删除 data.table 对象中的行? 的全部内容, 来源链接: utcz.com/z/331823.html