【发布时间】:2015-08-26 18:16:50
【问题描述】:
我有一个类似的数据框
col1 col2 col3
A 2 b1
A 3 b2
A 2 b2
A 2 b1
A 3 b2
我想为 col1 和 col2 的每个组合获取 col3 的唯一值的计数,如下所示
col1 col2 count_unique
A 2 2
A 3 1
最好的单线解决方案是什么?
【问题讨论】:
-
aggregate(col3~., df, function(x) length(unique(x)) )但您想要的输出是错误的——第二行的 col3 只有一个唯一值。 -
@Frank 对此感到抱歉。纠正它。并感谢您的解决方案。
-
@maj 对不起,我其实一点也不知道;并且只是通过反复试验来查看
?aggregate文档底部的示例。我总是为此使用 data.table:setDT(df)[, uniqueN(col3), by=.(col1,col2)] -
[当我发现公式中的点的解释时,我刚刚删除了我之前的评论。我的评论大意是“您能解释一下您使用的公式吗?”] @Frank:谢谢。
-
@akrun 我对有人采用这些变体并将它们放入答案没有任何问题。不过,q 可能是个骗子,所以我自己不会那么努力。