我是一个非常新的编程人员,正在学习如何使用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
预先感谢您提供有关解决方法的任何线索。
答案 0 :(得分:2)
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
(即,您要在每个{{ 1}}值。
如果您要在合并国家/地区时应用字母顺序,则可以使用values
。