要查找data.table两个或多个列值符合条件的行数,我们可以按照以下步骤操作 -
首先,创建一个data.table对象。
查找满足条件的行数。
让我们创建一个data.table对象,如下所示 -
x<-rpois(20,1) y<-rpois(20,1) z<-rpois(20,1) library(data.table) DT<-data.table(x,y,z) DT
执行时,上述脚本生成以下内容output(this output will vary on your system due to randomization)-
x y z 1: 0 1 2 2: 0 0 1 3: 0 2 1 4: 1 3 1 5: 2 1 0 6: 0 1 1 7: 2 1 1 8: 0 0 0 9: 0 1 1 10: 0 1 1 11: 0 2 1 12: 0 0 3 13: 3 1 1 14: 2 0 1 15: 2 1 0 16: 0 1 1 17: 1 0 0 18: 2 0 1 19: 1 0 0 20: 0 1 0
使用 Count:=.N 查找 DT 的行数,其中 x=0、y=1 和 z=1 -
x<-rpois(20,1) y<-rpois(20,1) z<-rpois(20,1) library(data.table) DT<-data.table(x,y,z) DT[x==0 & y == 1 & z ==1,Count:=.N] DT
x y z Count 1: 0 1 2 NA 2: 0 0 1 NA 3: 0 2 1 NA 4: 1 3 1 NA 5: 2 1 0 NA 6: 0 1 1 4 7: 2 1 1 NA 8: 0 0 0 NA 9: 0 1 1 4 10: 0 1 1 4 11: 0 2 1 NA 12: 0 0 3 NA 13: 3 1 1 NA 14: 2 0 1 NA 15: 2 1 0 NA 16: 0 1 1 4 17: 1 0 0 NA 18: 2 0 1 NA 19: 1 0 0 NA 20: 0 1 0 NA