r - R使用dplyr创建或修改数据框
问题描述
我是一个非常新的编程,我正在学习如何使用 dplyr,我想知道如何解决这个问题:我有这个数据框:
countries <- c("USA","Canada","Denmark","Albania", "Turkey","France", "Italy")
values <- c(1, 1, 3, 3,7,8,9)
old_df <- data.frame(countries, values, stringsAsFactors = FALSE)
我想将订单修改到我的数据集中以获得此:
countries <- c("USA , Canada","Denmark , Albania", "Turkey","France", "Italy")
values <- c(1,3,7,8,9)
new_df <- data.frame(countries, values, stringsAsFactors = FALSE)
因为我使用的是 dyplr,所以我认为解决我的问题的最佳方法可能是:
library(dplyr)
new_df <- group_by(values) %>%
transmute(countries = countries) %>%
ungroup
提前感谢您提供有关如何解决此问题的任何线索。
解决方案
library(dplyr)
old_df %>%
group_by(values) %>%
summarise(countries = paste0(countries, collapse = ", "))
# # A tibble: 5 x 2
# values countries
# <dbl> <chr>
# 1 1 USA, Canada
# 2 3 Denmark, Albania
# 3 7 Turkey
# 4 8 France
# 5 9 Italy
values
这里的要点是,对于您想要组合一些行的每个唯一值,因此您需要使用summarise
(即,您希望每个值都有一行values
)。
summarise(countries = paste0(sort(countries), collapse = ", "))
如果您想在合并国家/地区时应用字母顺序,则可以使用。
推荐阅读
- c# - 如何在 C# 中重载泛型函数?
- mysql - 使用 Promise 创建 mysql 连接池
- html - 排序后Html表格不显示任何记录
- javascript - axios请求在react中没有发送formData
- java - 如何使用java删除文本文件中的数据行?例如。我的文本文件是 data.txt
- node.js - 在 eclipse / nodeclipse 中调试无服务器应用程序
- prometheus - 当队列中的作业数量没有减少时如何获得警报?
- angular - 使用 Angular 从数据库中获取对象
- postgresql - 创建 postgresql 触发器函数以为每个插入语句创建修改条目的问题
- javascript - 隐藏 3 个项目 div 中的 2 个