You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言分组聚合数据框为列表时日期格式异常问题求助

问题原因

R中Date类型底层以整数存储,数值代表距离1970-01-01的天数,直接调用list做聚合时不会自动保留Date类属性,会直接输出底层整数值,就会出现类似18788的异常结果。

修复方案

聚合前先将Date列转为目标格式的字符串,即可避免格式丢失。如果需要直接输出示例中逗号分隔的文本(而非列表对象),可以直接在聚合时做字符串拼接,代码如下:

library(dplyr)

g1 <- df1 %>% 
  # 按实际原始日期格式调整解析参数,format函数输出统一为yyyy-mm-dd格式字符串
  mutate(Date = format(as.Date(Date, format = '%Y%m%d'), '%Y-%m-%d')) %>%
  # 注意列名大小写匹配,原数据列名为首字母大写的Status
  group_by(Status) %>% 
  summarise(
    ID = paste(ID, collapse = ","),
    Date = paste(Date, collapse = ", ")
  ) %>%
  # 按要求调整列顺序为Status、ID、Date
  select(Status, ID, Date)

如果需要保留列表结构而非拼接后的字符串,只需要在转为字符串后再执行list聚合即可,不会再出现数值异常:

g1 <- df1 %>% 
  mutate(Date = format(as.Date(Date, format = '%Y%m%d'), '%Y-%m-%d')) %>%
  group_by(Status) %>% 
  summarise(across(c(ID, Date), list))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 14:42:24