我正在使用来自 Kaggle的WW2 盟友轰炸数据集,该数据集具有五个级别的分类变量。我试图绘制两个最高的轰炸机(美国和英国)并将其他轰炸机(南非、新西兰、澳大利亚)分组到条形图上。
如何将最小的组聚合到“其他”组中?
当前方法
我有一些解决方法可以使用xlim
. 我想知道 R 中是否有一种简单的方法可以将残差分组并将它们绘制为“其他”?
ggplot(data = operations) +
geom_bar(mapping = aes(x = Country, fill = Country)) + xlim('USA', 'GREAT
BRITAIN')+
ggtitle("Allied Bombings") +
xlab("Country") + ylab("Bombs Dropped") +
theme(plot.title = element_text(hjust = 0.5))+
theme(panel.background = element_rect(fill = 'transparent', colour = NA))
Run Code Online (Sandbox Code Playgroud)
您可以使用fct_lump
包中的函数forcats
,它将最少/最常见的因子级别聚合到“其他”中。
这是一个可重现的示例。在这个例子中只保留了两个最大的组:
df <- data.frame(group =rep(LETTERS[1:9], times = c(40, 10, 5, 27, 1, 1, 1, 1, 1)))
library(forcats)
df$groupLump <- fct_lump(df$group, 2)
library(ggplot2)
ggplot(df) +
geom_bar(aes(x = groupLump, fill = groupLump))
Run Code Online (Sandbox Code Playgroud)