如何在R中的data.table对象行中找到NA的百分比?

要查找data.tableR 中对象的每一行中 NA 的百分比,我们可以按照以下步骤操作 -

  • 首先,创建一个data.table对象。

  • 然后,使用 rowSums 函数和 ncol 函数以及 apply 函数来查找data.table对象每一行中 NA 的百分比。

示例

创建data.table对象

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

library(data.table)
x1<-sample(c(NA,1,2,5,7,3),25,replace=TRUE)
x2<-sample(c(NA,1,2,5,7,3),25,replace=TRUE)
x3<-sample(c(NA,1,2,5,7,3),25,replace=TRUE)
x4<-sample(c(NA,1,2,5,7,3),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:   3  1  5  5
2:   2  5 NA  1
3:  NA  5  2  7
4:   2  2  3  3
5:   5  1  3  1
6:   1 NA NA NA
7:   7  1  5  5
8:   3  3  5  1
9:   5  3  7  3
10:  NA 7  3  1
11:   1 3  7  3
12:  NA 3 NA  2
13:  NA 7 NA  2
14:   3 7  2 NA
15:   2 7  1  7
16:   5 3  7  3
17:   1 3  5  5
18:   1 3  1  1
19:   2 7 NA  1
20:   1 7  1  7
21:   1 1  3  5
22:   7 7 NA  2
23:  NA 3  1  2
24:   3 NA 7  7
25:  NA 7 NA  1
     x1 x2 x3 x4

找出每一行中 NA 的百分比

使用 rowSums 函数和 ncol 函数以及 apply 函数来查找data.table对象 DT每一行中 NA 的百分比-

library(data.table)
x1<-sample(c(NA,1,2,5,7,3),25,replace=TRUE)
x2<-sample(c(NA,1,2,5,7,3),25,replace=TRUE)
x3<-sample(c(NA,1,2,5,7,3),25,replace=TRUE)
x4<-sample(c(NA,1,2,5,7,3),25,replace=TRUE)
DT<-data.table(x1,x2,x3,x4)
DT$NA_Percent<-rowSums(apply(is.na(DT),2,as.numeric))/ncol(DT)
DT
输出结果
    x1 x2  x3 x4 NA_Percent
1:  3  1   5  5  0.00
2:  2  5  NA  1  0.25
3:  NA 5   2  7  0.25
4:  2  2   3  3  0.00
5:  5  1   3  1  0.00
6:  1 NA  NA NA  0.75
7:  7  1   5  5  0.00
8:  3  3   5  1  0.00
9:  5  3   7  3  0.00
10: NA 7   3  1  0.25
11: 1  3   7  3  0.00
12: NA 3  NA  2  0.50
13: NA 7  NA  2  0.50
14: 3  7   2  NA 0.25
15: 2  7   1  7  0.00
16: 5  3   7  3  0.00
17: 1  3   5  5  0.00
18: 1  3   1  1  0.00
19: 2  7  NA  1  0.25
20: 1  7   1  7  0.00
21: 1  1   3  5  0.00
22: 7  7  NA  2  0.25
23: NA 3   1  2  0.25
24: 3  NA  7  7  0.25
25: NA 7  NA  1  0.50
   x1 x2  x3 x4 NA_Percent

猜你喜欢