【发布时间】:2020-07-20 17:07:14
【问题描述】:
所以我有一个类似这样的数据框...
status occupation
1 A
1 A
1 B
0 C
0 A
1 B
0 B
0 A
1 A
0 D
0 D
0 D
0 D
我浓缩得到计数如下:
counts <- df %>%
group_by(status, occupation) %>%
summarize(count = n()) %>%
group_by(occupation) %>%
mutate(pct = percent(count/sum(count)))
这给了我:
status occupation count pct
1 A 3 60%
1 B 2 66%
0 A 2 40%
0 B 1 33%
0 C 1 100%
0 D 4 100%
所以我想创建这个精确数据框的子集,其中包含最高计数的职业。所以让我们说排名最高的两个职业。
但这与状态无关。
期望的最终结果:
status occupation count pct
1 A 3 60%
0 A 2 40%
0 D 4 100%
请注意,该子集是总数最高的职业,与状态无关。所以我需要 2 个计数最高的职业的一个子集,然后新的子集包含细分。
【问题讨论】:
-
在
mutate(...)这个%>% top_n(3, count)之后添加? -
需要取消分组但仍然不起作用,请参阅@Matt