如何找到R数据框中所有行值都相等的列数?

要找到 R 数据框中所有行值都相等的列数,我们可以按照以下步骤操作 -

  • 首先,创建一个数据框。

  • 然后,使用 sum 函数以及 length 和 apply 函数来查找所有行值都相等的列数。

示例 1

创建数据框

让我们创建一个数据框,如下所示 -

x<-rpois(25,1)
y<-rpois(25,1)
z<-rpois(25,1)
df<-data.frame(x,y,z)
df
输出结果

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

   x y z
1  2 1 5
2  1 0 0
3  0 1 1
4  2 0 2
5  0 1 3
6  1 1 1
7  0 0 2
8  1 1 2
9  2 0 0
10 2 0 0
11 2 0 0
12 0 1 0
13 3 0 1
14 1 2 0
15 4 1 0
16 0 4 0
17 0 1 1
18 0 0 1
19 5 0 0
20 0 1 1
21 0 1 1
22 1 1 1
23 1 0 2
24 1 0 2
25 1 1 1

找出所有行值都相等的列数

使用 sum 函数以及 length 和 apply 函数来查找数据框 df1 中所有行值相等的列数 -

x<-rpois(25,1)
y<-rpois(25,1)
z<-rpois(25,1)
df<-data.frame(x,y,z)
sum(apply(df, 1, function(x) length(unique(x))==1))
输出结果
[1] 5

示例 2

创建数据框

让我们创建一个数据框,如下所示 -

v1<-round(rnorm(25),0)
v2<-round(rnorm(25),0)
dat<-data.frame(v1,v2)
dat
输出结果

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

    v1 v2
1  -1 -1
2  -1  1
3   3  0
4   0  0
5   0  0
6   0  0
7   0 -1
8   1  0
9  -1 -1
10  1  2
11  1  0
12 -1  1
13  1  1
14 -1 -1
15 -1  0
16  0  1
17 -1  2
18  1 -1
19  2  1
20  0 -1
21  0 -1
22 -1 -1
23  0 -2
24  0  0
25  3  0

找出所有行值都相等的列数

使用 sum 函数以及 length 和 apply 函数来查找数据框 df2 中所有行值都相等的列数 -

v1<-round(rnorm(25),0)
v2<-round(rnorm(25),0)
dat<-data.frame(v1,v2)
sum(apply(dat, 1, function(x) length(unique(x))==1))
输出结果
[1] 6

猜你喜欢