如何将R中的小时级降雨数据转换为日度时间序列
R语言小时级降雨数据转换为日度时间序列方案
你已完成小时级时间序列的补全操作,可参考以下代码完成日度聚合与时间序列转换:
方案1:tidyverse生态简洁实现
首先加载依赖包:
library(dplyr)
聚合与转时间序列代码:
# 按日期分组聚合日度降雨量(默认按当日小时降雨量求和) daily_rainfall <- rainfall %>% # 从小时时间戳提取日期维度 mutate(date = as.Date(V1)) %>% group_by(date) %>% # 可根据业务需求将sum替换为max/mean,对应日最大/平均降雨量 summarise(daily_rain = sum(V2, na.rm = TRUE)) %>% ungroup() # 转换为日度ts对象,1992年为闰年共366天,frequency设置为366 daily_rain_ts <- ts(daily_rainfall$daily_rain, start = c(1992, 1), frequency = 366)
方案2:基础R实现(无需额外加载tidyverse包)
# 新增日期列 rainfall$date <- as.Date(rainfall$V1) # 按日期聚合降雨量 daily_rainfall <- aggregate(V2 ~ date, data = rainfall, FUN = sum, na.rm = TRUE) # 转换为日度ts对象 daily_rain_ts <- ts(daily_rainfall$V2, start = c(1992, 1), frequency = 366)
注意事项
- 聚合完成后可执行
head(daily_rainfall)查看生成的日度数据前几行 - 若需处理多年跨闰年数据,可改用
xts/zoo类时间序列对象,无需手动指定年份频率,适配不规则日期序列更灵活 - 聚合函数可根据业务需求调整,降水统计通常默认用求和,气温类数据常用均值/极值
内容的提问来源于stack exchange,提问作者Holly Huang
相关产品推荐
相关产品推荐

