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


为了在 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

更新于:2021年11月8日

339 次查看

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告