好的,所以这个问题似乎很容易,但我无法弄清楚。基本上我有以下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
现在我想找出每组和事实组合的数量。
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)]
答案 0 :(得分:2)
您可以使用
获取data.frameas.data.frame(table(dt$group, dt$fact))
然后你可以将它转换回data.table,以及Freq!= 0等的子集
或带有
的data.table版本dt[,list(freq=.N), by=list(group, fact)]
答案 1 :(得分:2)
像这样使用.N
:
dt[, .N, by=list(group, fact)]
阅读help("data.table")
以了解.N
及其有用的朋友。
答案 2 :(得分:0)
这是使用dplyr
的{{1}}解决方案:
n()