【发布时间】:2017-03-29 12:14:38
【问题描述】:
我有一个数据集如下:
Group Class
A 1
A 2
A 1
A 1
B 2
B 2
B 2
B 1
B 3
B 1
C 1
C 1
C 1
C 2
C 3
我想按“组”列聚合表,“类”列上的值将是具有最大计数的类。比如A组,1出现3次,Class的值为1。同理,Group 2,2出现3次,Class的值为2。结果表如下:
Group Class
A 1
B 2
C 1
我是 R 编程新手,希望您能帮我解决这个问题。谢谢!
【问题讨论】:
-
aggregate(Class~Group, df1, function(x) which.max(table(x))) -
呸,我准备好了相同的答案。打我一分钟。 :)
-
更一般地,
aggregate(Class~Group, df, function(x) {temp <- table(x); names(temp)[which.max(temp)]})用于提取更复杂的值,例如类名或在组中没有观察到一个类的情况下。 -
count(df, Group, Class) %>% slice(which.max(n))在 dplyr 中也很简单 -
哇,工作就像一个魅力!非常感谢大家的快速回复,特别感谢@Ronak Shah
标签: r count aggregate frequency