首页 > 解决方案 > Rstudio 上的 DataFrame 转换:添加/删除类别并进行计算

问题描述

总的来说,我对 Rstudio 和编码很陌生。

我正在尝试修改一个数据框,类似于“汽车”数据框(我的称为国家/地区)。它的类型是一个列表。

第一列是国家名称(输入 chr)。第二列是数据(类型 dbl)。

   Country          Number
 1 Portugal         100000       
 2 Poland           200000       
 3 Israel           300000
 4 South Africa     400000
 5 Austria          500000

当数字超过 250000(例如)时,我想通过“其他”在第一列中重命名/分组国家,然后用 ggplot 绘制图表。

目前我有一个很好的条形图,但我现在想和“其他人”一起制作一个。“其他”栏将只是按国家/地区划分的数字的总和。

哪种方法处理数据最有效?用“if”创建一个函数并将其应用于数据框?或者创建一个包含两个类别的新列,然后将所有“其他”相加?

我已经尝试通过使用管道%>%和变异来操作代码。

非常感谢您的帮助

标签: rdplyr

解决方案


一种解决方案是使用 dplyr 根据规则更改国家/地区名称,然后使用 group_by/summary 函数聚合结果。下面你会发现一个小例子。

countries <- data.frame(Country= c("Portugal","Poland","Israel","South Africa","Austria"), 
                        Number = c(100000,200000,300000,400000,500000), stringsAsFactors = F)

# using dplyr
countries_dp <- countries  %>%
  mutate(Country = ifelse(Number > 250000, "Other", Country)) %>%
  group_by(Country) %>%
  summarise(Number = sum(Number))

推荐阅读