a <- c(rep(1:2,3))
b <- c("A","A","B","B","B","B")
df <- data.frame(a,b)
> str(b)
chr [1:6] "A" "A" "B" "B" "B" "B"
a b
1 1 A
2 2 A
3 1 B
4 2 B
5 1 B
6 2 B
我想按变量a
分组,并返回b
的最频繁出现的值。
我想要的结果看起来像:
a b
1 1 B
2 2 B
在 dplyr
中,它可能是这样的。
df %>% group_by(a) %>% summarize (b = most.frequent(b))
我提到 dplyr
只是为了可视化问题。
df %>% group_by(a) %>% summarize (b =names(which.max(table(b))))
- rmuc8max(table(b))
。完整代码如下:df%>% group_by(a) %>% summarize (b =names(which.max(table(b))), count_b = max(table(b)))
- Sascha