如何用R语言dplyr按组将列转换为逗号分隔拼接字符串
按组将列转换为逗号分隔的拼接字符串
你可以在已有的分组去重数据基础上,使用dplyr的summarize()函数结合paste()来实现按组拼接:
完整代码示例
library(dplyr) # 你的初始数据处理 i <- iris %>% group_by(Species) %>% distinct(Sepal.Length) # 按组拼接Sepal.Length为逗号分隔的字符串 result <- i %>% summarize(Sepal.Length_combined = paste(Sepal.Length, collapse = ", "))
代码说明
summarize()会保留之前group_by(Species)的分组逻辑,对每个物种单独处理paste(..., collapse = ", ")的作用是把当前组内的所有Sepal.Length值,用逗号加空格连接成一个字符串
输出示例
运行后你会得到每个物种对应一行的结果,格式如下:
# A tibble: 3 × 2 Species Sepal.Length_combined <fct> <chr> 1 setosa 5.1, 4.9, 4.7, 4.6, 5.0, 5.4, 4.4, 4.8, 4.3, 5.8 2 versicolor 7.0, 6.4, 6.9, 5.5, 6.5, 5.7, 6.3, 4.9, 6.6, 5.2, 5.0, 5.9, 6.0, 6.1, 5.6, 6.7, 5.8, 6.2, 5.1, 5.3, 6.8 3 virginica 6.3, 5.8, 7.1, 6.5, 7.6, 4.9, 7.3, 6.7, 7.2, 6.5, 6.4, 6.8, 5.7, 5.8, 6.4, 6.0, 6.9, 6.7, 6.0, 5.6, 6.3, 6.2, 5.9, 6.5, 6.4, 6.1, 7.7, 6.3, 6.4, 6.0, 6.9, 5.8, 6.8, 6.7, 6.7, 6.3, 6.5, 6.2, 5.9
如果你习惯用stringr包的函数,也可以替换成str_c(),效果一致:
library(stringr) result <- i %>% summarize(Sepal.Length_combined = str_c(Sepal.Length, collapse = ", "))
内容的提问来源于stack exchange,提问作者Amc
相关产品推荐
相关产品推荐

