如何在R中的data.table对象中找到所有行值都相等的列数?
要data.table在R中的对象中找到所有行值都相等的列数,我们可以按照以下步骤操作-
首先,创建一个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输出结果
执行时,上述脚本生成以下内容output(thisoutputwillvaryonyoursystemduetorandomization)-
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输出结果
执行时,上述脚本生成以下内容output(thisoutputwillvaryonyoursystemduetorandomization)-
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