R 计算因素组合

R 计算因素组合,r,dataframe,data.table,R,Dataframe,Data.table,好的,这个问题看起来很简单,但我想不出来。基本上我有以下数据表结构: dt =data.table(group=sample(c("A","B"),10,replace=T), fact=sample(c("Q","R","S","v"),10,replace=T)) group fact 1 B Q 2 B S 3 A S 4 B S 5 A Q 6 B v 7 A v 8 A S 9 B Q 10 A R

好的,这个问题看起来很简单,但我想不出来。基本上我有以下数据表结构:

dt =data.table(group=sample(c("A","B"),10,replace=T),
fact=sample(c("Q","R","S","v"),10,replace=T))

group   fact
1   B   Q
2   B   S
3   A   S
4   B   S
5   A   Q
6   B   v
7   A   v
8   A   S
9   B   Q
10  A   R
现在我想找出每一组和事实组合的数量

group   fact    V1
1   B   Q     2
2   B   S     2
3   A   S     2
4   B   S     1
5   A   Q     1
6   B   v     1
etc.
我似乎无法使用data.table来理解它。 下面只给了我一些独特的因素

dt=dt[,length(unique(fact)),by=list(group,fact)]

您可以使用

as.data.frame(table(dt$group, dt$fact))
然后可以将其转换回data.table和Freq上的子集=0等

或具有的data.table版本

dt[,list(freq=.N), by=list(group, fact)]

您可以使用

as.data.frame(table(dt$group, dt$fact))
然后可以将其转换回data.table和Freq上的子集=0等

或具有的data.table版本

dt[,list(freq=.N), by=list(group, fact)]

像这样使用
.N

dt[, .N, by=list(group, fact)]

阅读
帮助(“data.table”)
了解
.N
及其有用的朋友。

像这样使用
.N

dt[, .N, by=list(group, fact)]

阅读
帮助(“data.table”)
了解
.N
及其有用的朋友。

以下是使用
N()的
dplyr
解决方案:


下面是一个使用
n()
dplyr
解决方案: