如何在R中的data.table对象的每一列中找到零的百分比?

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

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

  • 然后,使用 colSums 函数和 nrow 函数来查找每列中零的百分比。

示例 1

创建data.table对象

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

library(data.table)
y1<-round(rnorm(25,1),0)
y2<-round(rnorm(25,1),0)
y3<-round(rnorm(25,1),0)
y4<-round(rnorm(25,1),0)
DT1<-data.table(y1,y2,y3,y4)
DT1
输出结果

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

   y1 y2 y3 y4
1:  1  2  1  2
2:  2 -1  1  1
3:  2  0  1  2
4:  2  2  0  3
5:  3  1  0  2
6:  1  1  2  1
7:  1  4  2  2
8:  1  2  1  0
9:  1 -1  1  0
10: 1  1  2 -1
11: 1  1  0  0
12: 2  1  0  2
13: 0  0  1  1
14: 0  0  1  2
15: 0  2  0  1
16: 0 -1  1  1
17: 1  1  1  0
18: 2  2  1  0
19: 0  1  2  0
20: 1  0  0  1
21: 0  0  0  3
22: 1  3  3  2
23: 2  1  1  1
24: 1  2  1  1
25: 1  1  1  0
   y1 y2 y3 y4

找出零的百分比

使用 colSums 函数和 nrow 函数来查找data.table对象 DT1 的每一列中零的百分比-

library(data.table)
y1<-round(rnorm(25,1),0)
y2<-round(rnorm(25,1),0)
y3<-round(rnorm(25,1),0)
y4<-round(rnorm(25,1),0)
DT1<-data.table(y1,y2,y3,y4)
(colSums(DT1==0)/nrow(DT1))*100
输出结果
y1 y2 y3 y4
24 20 28 28

示例 2

创建data.table对象

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

library(data.table)
c1<-sample(0:5,25,replace=TRUE)
c2<-sample(0:5,25,replace=TRUE)
c3<-sample(0:5,25,replace=TRUE)
c4<-sample(0:5,25,replace=TRUE)
DT2<-data.table(c1,c2,c3,c4)
DT2
输出结果

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

   c1 c2 c3 c4
1:  1  5 0  5
2:  3  2 2  5
3:  3  3 2  4
4:  3  5 2  1
5:  2  4 1  4
6:  0  2 1  3
7:  3  1 3  2
8:  1  3 3  4
9:  2  3 0  2
10: 1  3 5  4
11: 1  2 0  4
12: 3  3 5  1
13: 1  5 5  5
14: 1  1 4  4
15: 2  4 1  4
16: 3  5 4  3
17: 3  1 5  4
18: 5  4 5  2
19: 5  0 0  1
20: 4  5 2  2
21: 3  0 5  0
22: 0  5 5  3
23: 2  5 1  0
24: 4  5 5  1
25: 3  4 5  2
   c1 c2 c3 c4

找出零的百分比

使用 colSums 函数和 nrow 函数来查找data.table对象 DT2 的每一列中零的百分比-

library(data.table)
c1<-sample(0:5,25,replace=TRUE)
c2<-sample(0:5,25,replace=TRUE)
c3<-sample(0:5,25,replace=TRUE)
c4<-sample(0:5,25,replace=TRUE)
DT2<-data.table(c1,c2,c3,c4)
(colSums(DT2==0)/nrow(DT2))*100
输出结果
c1 c2 c3 c4
 8  8 16 8

猜你喜欢