如何在R数据帧的列中查找不为零的值数?

如果R数据帧具有数字列,则在少数或全部列中也可能存在零,并且我们可能有兴趣查找一列中非零值的数量。这将帮助我们根据非零值上的数字比较列,这可以通过使用colSums来完成。

示例

请看以下数据帧-

x1<-sample(0:10,20,replace=TRUE)
x2<-sample(0:50,20,replace=TRUE)
x3<-sample(0:5,20,replace=TRUE)
x4<-sample(0:15,20,replace=TRUE)
x5<-sample(0:20,20,replace=TRUE)
df1<-data.frame(x1,x2,x3,x4,x5)
df1

输出结果

  x1 x2 x3 x4 x5
1  9 47 4  1  6
2  7 6  1  7  7
3  3 20 5 15 19
4 10 13 2 13 13
5  10 49 1 8 12
6  10 49 1 2  1
7  9  36 5 2 15
8  0  27 4 15 8
9  6  50 2 7 15
10 7  11 0 10 4
11 9  22 1  7 14
12 5  47 5  3 20
13 3  36 2  0  6
14 10 44 4  6 18
15 1  40 2  11 4
16 1  46 0  15 5
17 3  36 5  0  9
18 2  1  5  6 19
19 9  38 3  4  1
20 1  37 4 11 18

查找每列中不为零的值的数量-

示例

colSums(df1!=0)

输出结果

x1 x2 x3 x4 x5
19 20 18 18 20

让我们看另一个例子-

示例

y1<-rpois(20,1)
y2<-rpois(20,2)
y3<-sample(0:1,20,replace=TRUE)
y4<-sample(0:2,20,replace=TRUE)
df2<-data.frame(y1,y2,y3,y4)
df2

输出结果

   y1 y2 y3 y4
1  1  1   0 1
2  1  1   1 0
3  1  4   0 1
4  0  1   1 0
5  1  1   1 2
6  3  1   0 1
7  1  6   1 0
8  3  1   0 2
9  0  0   0 0
10 0  1   1 0
11 1  2   0 1
12 0  2   0 2
13 2  3   0 2
14 3  2   1 1
15 2  1   1 0
16 2  2   0 0
17 0  2   0 2
18 2  1   0 2
19 1  3   1 2
20 1  1   0 1

示例

colSums(df2!=0)

输出结果

y1 y2 y3 y4
15 19 8 13