R语言如何将dataframe分组后列值合并为无尾逗号的逗号分隔字符串
R 数据框分组拼接列值实现方案
我们默认你的原始数据框为df,两列分别命名为category(存储fish/cats分类)和value(存储对应子类名称),你可以用以下两种常用方案快速完成转换:
方案1:tidyverse 生态快速实现(最常用)
借助dplyr的分组汇总逻辑即可完成,代码简洁易读:
# 先加载包,未安装的话先运行 install.packages("dplyr") library(dplyr) # 构造示例数据(你有现成数据的话可以跳过这步) df <- data.frame( category = c("fish", "fish", "fish", "cats", "cats"), value = c("flounder", "mackerel", "sole", "tabby", "black") ) # 分组拼接处理 result <- df %>% group_by(category) %>% summarise(value = paste(value, collapse = ",")) %>% ungroup()
方案2:Base R 无依赖实现
不需要安装第三方包,用原生aggregate函数即可实现:
# 构造示例数据(你有现成数据的话可以跳过这步) df <- data.frame( category = c("fish", "fish", "fish", "cats", "cats"), value = c("flounder", "mackerel", "sole", "tabby", "black") ) # 分组拼接处理 result <- aggregate(value ~ category, df, FUN = function(x) paste(x, collapse = ","))
两种方案输出的result都是符合要求的两列数据框,第二列为无末尾多余逗号的逗号分隔字符串。
内容的提问来源于stack exchange,提问作者danwiththeplan
相关产品推荐
相关产品推荐

