如何在两个或多个列值满足 R 中的条件的 data.table 中查找行数?

要查找data.table两个或多个列值符合条件的行数,我们可以按照以下步骤操作 -

  • 首先,创建一个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