计算因素的组合

时间:2014-06-24 12:18:57

标签: r dataframe data.table

好的,所以这个问题似乎很容易,但我无法弄清楚。基本上我有以下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)]

3 个答案:

答案 0 :(得分:2)

您可以使用

获取data.frame
as.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()