如何在不影响表格其他列的情况下合并单列多行并导出至Excel
解决方案:合并单列多行(不汇总其他列)并导出Excel
专业术语说明
你要实现的操作叫做分组字符串折叠(grouped string collapsing)——基于其他列的相同值,将目标列的多行内容合并为单行,同时保留其他列的原始内容。
R代码实现
方法1:用dplyr + tidyr(适合常规数据量)
假设你的数据框为df,需要合并的目标列是target_col,其余列为分组依据:
library(dplyr) library(tidyr) # 按除目标列外的所有列分组,合并目标列(用逗号分隔,可自定义) result_df <- df %>% group_by(across(-target_col)) %>% summarise(target_col = paste(target_col, collapse = ", "), .groups = "drop")
如果分组列是明确指定的(比如ID、Category),可以直接写:
result_df <- df %>% group_by(ID, Category) %>% summarise(target_col = paste(target_col, collapse = ", "), .groups = "drop")
方法2:用data.table(适合大数据集,效率更高)
library(data.table) setDT(df) result_df <- df[, .(target_col = paste(target_col, collapse = ", ")), by = .(ID, Category)]
导出到Excel
推荐用writexl包(轻量无依赖):
library(writexl) write_xlsx(result_df, "合并结果.xlsx")
如果需要自定义Excel格式(比如单元格样式),可以用openxlsx:
library(openxlsx) write.xlsx(result_df, "合并结果.xlsx", rowNames = FALSE)
注意事项
- 分隔符可自定义:比如换成换行符
"\n",在Excel中设置单元格自动换行即可显示多行 - 确保分组列的内容完全一致,否则会被视为不同分组
内容的提问来源于stack exchange,提问作者asokol
相关产品推荐
相关产品推荐

