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

R语言大数据集处理:按日聚合气温统计指标

解决逐小时气象数据聚合到每日统计的问题

核心思路:分组聚合而非逐行修改

你之前用mutate失败,是因为mutate是对原数据的每行做修改,而你需要的是按日期分组计算聚合值,应该用dplyr的group_by() + summarize()组合,直接生成每日一行的统计结果,再和目标Data Frame匹配。


步骤1:处理逐小时数据生成每日统计

假设你的逐小时数据集名为hourly_weather,包含datetime(带小时的时间列,建议转为POSIXct类型)和AirTemp(逐小时气温值)列:

library(dplyr)
library(lubridate) # 简化时间处理

# 生成每日统计数据框
daily_stats <- hourly_weather %>%
  # 提取日期作为分组依据,确保Date列是Date类型
  group_by(Date = date(datetime)) %>%
  # 计算每日气温的均值、最大值、最小值,忽略缺失值
  summarize(
    AvgAirTemp = mean(AirTemp, na.rm = TRUE),
    MaxAirTemp = max(AirTemp, na.rm = TRUE),
    MinAirTemp = min(AirTemp, na.rm = TRUE)
  ) %>%
  ungroup() # 取消分组,避免后续操作受分组影响

步骤2:匹配到已有的目标Data Frame

如果已经创建了目标Data Frame(名为target_df,包含Date列),用left_join将统计结果匹配到对应行:

target_df <- target_df %>%
  left_join(daily_stats, by = "Date")

关键注意事项

  • 确保两个数据框的Date列格式完全一致:都要转为Date类型(而非字符型或POSIXct),否则会匹配失败。可以用as.Date()统一格式。
  • 处理缺失值:统计时加上na.rm = TRUE,避免因单小时数据缺失导致整日报统计值为NA。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 05:02:07