【发布时间】:2018-10-04 14:53:51
【问题描述】:
该示例显示了不同工厂的生产输出的测量值, 其中第一列表示工厂 最后一列是生产量。
factory <- c("A","A","B","B","B","B","B","C","D")
production <- c(15, 2, 1, 1, 2, 1, 2,20,5)
df <- data.frame(factory, production)
df
factory production
1 A 15
2 A 2
3 B 1
4 B 1
5 B 2
6 B 1
7 B 2
8 C 20
9 D 5
现在我想根据数据集中的总产量将工厂归为更少的级别。
使用普通的 forcats::fct_lump,我可以按你出现的行数来汇总它们,例如制作 3 个关卡:
library(tidyverse)
df %>% mutate(factory=fct_lump(factory,2))
factory production
1 A 15
2 A 2
3 B 1
4 B 1
5 B 2
6 B 1
7 B 2
8 Other 20
9 Other 5
但我想根据总和(生产)对它们进行汇总,保留前 n=2 个工厂(按总产量)并将其余工厂汇总。期望的结果:
1 A 15
2 A 2
3 Other 1
4 Other 1
5 Other 2
6 Other 1
7 Other 2
8 C 20
9 Other 5
有什么建议吗?
谢谢!
【问题讨论】: