我在R语言中很新,并且在算法上有一些理解上的问题。
我有一个名为country_function()
的函数,可以绘制条形图。
输入数据为“ export00”,因此country_function(export00)
运行良好。
但是我想在函数中添加一个参数t
来创建数据选择。
我的数据框非常简单:
Country Number
1 Portugal 100000
2 Poland 200000
3 Israel 300000
4 South Africa 400000
5 Austria 500000
我希望“ t”为我要查看的国家/地区的数量,其余的归为“其他”类别。
因此country_function(export00, 2)
将显示数量最大的2个国家(奥地利和南非),其余为“其他”(其他是数量的总和)。
目前,我的代码正在使用ifelse来选择某个数字下的国家(“ ifelse(Number <400000 ...”)。因此,很容易输入ta来将数字替换为t。但是对于新代码我不知道要修改什么。
country_function <- function(export00) {
country = export00 %>%
filter(Number> 100000000) %>%
mutate(Country = ifelse(Number< 400000000, "Other", Country)) %>%
group_by(Country) %>%
summarise(Number= sum(Number))
p_country = country %>%
arrange(Number) %>%
mutate(Country = factor(Country, levels = Country)) %>%
ggplot(aes(x = Country, y = Number, label = Number, fill = Number)) +
geom_text(check_overlap = TRUE, hjust = "bottom", size = 2)
return(p_country)
}
总而言之,我有一个图表可以选择多个国家/地区,选择最小值,其余为其他,但我想选择要在图表中看到的国家/地区和休息成为其他人。
答案 0 :(得分:0)
也许是这样吗?
country_function <- function(export00, n) {
country = export00 %>%
arrange(Number) %>%
mutate(Country = ifelse(row_number() >= n, as.character(Country), "Other")) %>%
group_by(Country) %>%
summarise(Number= sum(Number))
p_country = country %>%
arrange(Number) %>%
mutate(Country = factor(Country, levels = Country)) %>%
ggplot(aes(x = Country, y = Number, label = Number, fill = Number)) +
geom_text(check_overlap = TRUE, hjust = "bottom", size = 2) +
geom_bar(stat="identity")
return(p_country)
}
然后调用该函数并绘制图表:
graph <- country_function(export00,3)
graph