R语言如何合并data frame中SN与category均重复的行并拼接note
R语言同分组多内容拼接+宽表转换解决方案
方案1:tidyverse生态方案(推荐,适配后续pivot_wider操作)
该方案基于dplyr和tidyr实现,自动按SN、category两个字段分组拼接note,无需手动识别重复项,数千行业务数据可快速处理:
# 加载依赖包 library(tidyverse) # 1. 合并同SN同category的note字段 df_merged <- df %>% group_by(SN, category) %>% summarise( note = str_c(note, collapse = " -- "), .groups = "drop" # 处理完成后自动取消分组,避免后续操作异常 ) # 2. 直接转宽表,无需额外处理 df_wide <- df_merged %>% pivot_wider( names_from = category, values_from = note )
运行后df_merged就是你需要的合并后长表,df_wide为最终的宽表结果,完全匹配预期输出格式。
方案2:base R方案(无需安装第三方包)
如果不想加载第三方包,可以用基础函数aggregate实现相同逻辑:
# 合并同分组的note字段 df_merged_base <- aggregate( note ~ SN + category, data = df, FUN = paste, collapse = " -- " ) # 转宽表可使用reshape2包的dcast函数,或直接用基础reshape函数
两种方案均支持自动匹配重复分组,无需手动筛查,支持你提到的数百个SN、数千行的业务数据规模,运行效率无问题。
内容的提问来源于stack exchange,提问作者joerminer
相关产品推荐
相关产品推荐

