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

如何在R中合并宽格式降雨数据的年月日为时间序列索引

R语言降雨宽表转时间序列适配长表方案

首先确保你已经安装加载了 tidyverse 系列工具包:

# 未安装可先运行 install.packages(c("tidyverse", "lubridate"))
library(tidyverse)
library(lubridate)

假设你的原始宽表tibble命名为rain_wide,核心转换代码如下:

rain_long <- rain_wide %>%
  # 宽表转长表,匹配所有Day开头的日期列
  pivot_longer(
    cols = starts_with("Day"),
    names_to = "day_num",
    values_to = "RAINFALL"
  ) %>%
  # 提取日序号、拼接生成标准日期
  mutate(
    day_num = str_remove(day_num, "Day") %>% as.integer(),
    # 自动处理无效日期(如2月30日、4月31日会生成NA)
    DATE = ym(`Year-Month`) + days(day_num - 1)
  ) %>%
  # 过滤无效日期、保留要求的两列
  filter(!is.na(DATE)) %>%
  select(DATE, RAINFALL)

关键逻辑说明:

  • pivot_longer函数会将所有Day开头的列从宽格式拉伸为长格式,RAINFALL列直接存储对应单日降雨量数值
  • 日期拼接时ym()会自动解析YYYY-MM格式的年月字段为当月1号的日期,加减天数自动适配不同月份的天数规则
  • 若你的「Year-Month」字段为非标准格式,将ym(Year-Month)替换为适配你数据的日期解析函数即可

转换完成后可运行glimpse(rain_long)验证:DATE列应为Date类型,RAINFALL列为数值类型,符合时间序列预测的输入要求。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 16:54:03