r - 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”创建一个函数并将其应用于数据框?或者创建一个包含两个类别的新列,然后将所有“其他”相加?
我已经尝试通过使用管道%>%
和变异来操作代码。
非常感谢您的帮助
解决方案
一种解决方案是使用 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))
推荐阅读
- django - Django:用户与用户配置文件
- azure-devops - 使用 AZ 管道和具有 .net 5 AZ 功能后端的静态 Web 应用程序时如何修复 SDK 错误
- python - Python,AWS S3:如何使用 jsons 读取文件
- azure - 是否可以组合多个 Application Insights 应用程序映射?
- angular - 如何在 TypeScript 文件中将 >= 的值更改为 ascii 字符
- xamarin.forms - 如何在 Xamarin 表单中实现 Google PlaceAutocompletePrediction?完整的代码示例?
- python - Pylance 在导入包时给出“导入 numpy 无法解决”错误,即使它以前能够导入它们
- javascript - 使用rails partial时如何访问DOM元素
- reactjs - 'onbefreunload' 事件监听器不会触发 Electron 中的所有代码
- c# - DllImport kernel32.dll 代码在控制台应用程序中工作但在 UWP 中不工作 - FindFirstFileW 返回 INVALID_HANDLE_VALUE