R语言 - 按列分列多列的计数

时间:2016-09-14 01:05:04

标签: r distinct-values

我在R中获得了如下所示的数据框:

> df
   c1 c2 c3
1: 10 c1 i1
2: 10 c1 i2
3: 10 c1 i3
4: 10 c2 i1
5: 10 c2 i2
6: 10 c2 i3
7: 20 c11 i1
8: 20 c11 i2
9: 20 c11 i3
10: 20 c12 i1
11: 20 c12 i2
12: 20 c12 i3

我需要用c1对c2和c3列的不同计数进行求和 - 得到以下结果:

10 2 3
20 2 3

我如何在R中完成这项工作?

由于

2 个答案:

答案 0 :(得分:3)

使用base R aggregate

aggregate(cbind(c2,c3)~c1, df, function(x) length(unique(x)))


#  c1 c2 c3
#1 10  2  3
#2 20  2  3

答案 1 :(得分:1)

由于OP的数据集看起来像data.table,我们可以使用data.table方法。将'data.frame'转换为'data.table'(setDT(df1) - 如果它是'data.frame'),按'c1'分组,我们循环遍历Data.table的子集({{1 }}并找到.SDlength元素(unique)。

uniqueN