如何在 R 中的 data.table 对象中找到所有行值相等的列数?

r programmingserver side programmingprogramming更新于 2025/4/8 13:37:17

要在 R 中的 data.table 对象中找到所有行值相等的列数,我们可以按照以下步骤操作 −

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

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

示例 1

创建 data.table 对象

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

library(data.table)
x<-sample(0:1,25,replace=TRUE)
y<-sample(0:1,25,replace=TRUE)
DT1<-data.table(x,y)
DT1

输出

执行时,上述脚本将生成以下输出(由于随机化,此输出将因您的系统而异) −

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

查找所有行值相等的列数

使用 sum 函数以及 length 和 apply 函数查找 data.table 对象 DT1 中所有行值相等的列数 −

library(data.table)
x<-sample(0:1,25,replace=TRUE)
y<-sample(0:1,25,replace=TRUE)
DT1<-data.table(x,y)
sum(apply(DT1, 1, function(x) length(unique(x))==1))

输出

[1] 12

示例 2

创建 data.table对象

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

library(data.table)
v1<-rpois(25,1)
v2<-rpois(25,1)
DT2<-data.table(v1,v2)
DT2

输出

执行时,上述脚本将生成以下输出(由于随机化,此输出将因您的系统而异) −

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

查找所有行值相等的列数

使用 sum 函数以及 length 和 apply 函数查找 data.table 对象 DT2 中所有行值相等的列数 −

library(data.table)
v1<-rpois(25,1)
v2<-rpois(25,1)
DT2<-data.table(v1,v2)
sum(apply(DT2, 1, function(x) length(unique(x))==1))

输出

[1] 7

相关文章