R - 聚合因子/字符变量

时间:2013-07-23 13:11:15

标签: r character aggregate r-factor

我有这种数据框:

df<- data.frame(cluster=c('1','1','2','3','3','3'), class=c('A','B','C','B','B','C'))

我想获得每个群集(1,2,3),这个群体最常出现。如果是平局,获取信息也很好,例如类的组合(或者如果不可能只有NA)。 所以对于我的例子,我希望得到这样的结果:

 cluster  class.max
   1        'A B' (or NA)
   2         'C'
   3         'B'

也许我应该使用aggregate()但不知道如何。

1 个答案:

答案 0 :(得分:3)

rank有处理关系的方法:

aggregate(class~cluster,df,function(x) paste(names(table(x)[rank(-1*table(x),ties.method="min")==1]),collapse=" "))
  cluster class
1       1   A B
2       2     C
3       3     B