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

如何在R中基于日均值对象用group_by和summarise计算月均值?

解决按月分组计算月均值的问题

直接给你修改后的代码,关键调整了分组逻辑,自动处理不同月份天数和闰年:

mn <- abc %>%
  select(any_of(cn)) %>%
  as_tibble() %>%
  # 按月份分组,lubridate自动处理30/31天、闰年2月
  group_by(Time_sp = lubridate::floor_date(`Date/Time`, "month")) %>%
  # 格式化年月为简洁的YYYY-MM格式,也可保留完整时间格式
  mutate(Time_sp = format(Time_sp, "%Y-%m")) %>%
  summarise(across(where(is.numeric), ~ if(mean(is.na(.x)) > 0.8) NA else mean(.x, na.rm = TRUE)))

write.csv(mn, paste0(dirlist[idx],"_mn.csv"), row.names = FALSE)

关键修改说明:

  • 分组逻辑调整:将floor_date的时间单位从"60 mins"改为"month",这个函数会自动把每个日期映射到当月的第一天,不管当月是30天、31天还是闰年的2月,完美适配你的需求。
  • 日期格式化优化:把时间格式改成"%Y-%m"(比如2024-05),这样输出的月份标识更直观;如果需要保留完整的月初时间字符串,也可以继续用原来的"%Y-%m-%d %H:%M:%S+00"。
  • 适配日均值数据:因为你的abc是日均值数据集,按月份分组后,summarise会自动对当月所有日均值计算平均值,直接得到月均值结果。

内容的提问来源于stack exchange,提问作者Alexia k Boston

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 10:19:59