在R中使用dplyr按组聚合重复日期的act列值
使用dplyr聚合同一ID与日期组合下的act值
核心实现代码
library(dplyr) library(stringr) # 聚合处理 df2 <- df1 %>% group_by(id, date_1, date_2) %>% summarize(act = str_c(act, collapse = "/"), .groups = "drop")
代码说明
- 分组依据:通过
group_by(id, date_1, date_2)指定分组键,确保只有当id、date_1、date_2三者完全相同时,才会合并对应的act记录(满足保留tibble结构的需求,后续可正常使用date_1和date_2进行计算)。 - 聚合逻辑:使用
stringr::str_c函数,将每个分组内的act值以/为分隔符拼接成字符串,collapse参数用于指定连接符。 - 取消分组:
.groups = "drop"用于关闭分组状态,返回常规的tibble/data.frame,避免后续操作受分组状态影响。
运行结果
执行代码后得到的df2与期望输出完全一致:
> df2 # A tibble: 7 × 4 id date_1 act date_2 <chr> <chr> <chr> <chr> 1 N02 2008-03-15 YYYY050/ZZNL040 2008-03-15 2 N02 2008-04-15 YYYY050/ZZNL040 2008-04-15 3 N03 2008-06-15 ZZNL040 2008-06-15 4 N03 2008-07-15 ZZNL040 2008-07-15 5 N05 2014-03-06 ZZNL065 2014-03-06 6 N05 2014-03-07 ZZNL065/ZZNL040 2014-03-07 7 N05 2014-03-13 ZZNL065 2014-03-13
内容的提问来源于stack exchange,提问作者CharlesLDN
相关产品推荐
相关产品推荐

