You need to enable JavaScript to run this app. R语言如何按数据框分类列将字符型描述聚合为列表格式
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何按数据框分类列将字符型描述聚合为列表格式

R语言按Category分组聚合description的实现方法

第一步:构造可复现的示例数据

先运行以下代码生成和需求一致的测试数据框:

df <- data.frame(
  Category = c("Analysis", "Hybrid", "Other", "Analysis", "Other", "Hybrid"),
  description = c("This is one", "This is two", "This is three", "This is four", "This is five", "This is six"),
  stringsAsFactors = FALSE # 避免旧版本R自动将字符转为因子导致报错
)

方法1:使用R基础语法(无需安装额外包)

适合刚接触R、还未安装第三方包的场景:

# 按Category拆分description列
desc_grouped <- split(df$description, df$Category)

# 构造最终聚合结果,I()用于保留列表/向量结构,避免拆分为多列
result <- data.frame(
  Category = names(desc_grouped),
  description = I(desc_grouped)
)

运行result即可输出聚合后的结果,同组文本会自动以向量形式(即示例中的括号包裹格式)显示。

方法2:使用dplyr包(更符合批量数据处理逻辑)

如果已经安装dplyr包(可通过install.packages("dplyr")安装),可以用管道操作简化代码:

library(dplyr)

result <- df %>%
  group_by(Category) %>% # 按Category列分组
  summarise(description = list(description)) # 将同组的description打包为列表

自定义:完全匹配示例的带引号显示格式

如果需要让输出的description完全和示例一致(即每个文本都带双引号、整体用括号包裹),可在聚合后加一步格式转换:

# 适配基础R或dplyr生成的result,将列表内容转换为指定格式的字符串
result$description <- sapply(result$description, function(x) {
  paste0("(", paste0('"', x, '"', collapse = ", "), ")")
})

注:默认会按照原始数据中文本出现的先后顺序排列同组内容,若需要调整顺序,可在分组前对数据框按指定规则排序后再执行聚合操作。


内容的提问来源于stack exchange,提问作者Uday Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.01 02:36:05