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

如何将R中生成的小时交通时序数据转为日×24小时格式?

如何将小时级时间序列交通数据转换为日期×24小时的宽格式?

我明白你想要把这份小时级的信号灯车流量xts数据,转换成每行对应一个日期、每列对应一天中24个小时的结构——这种格式非常适合分析每日的交通峰值模式。下面给你几种实用的实现方法:

方法1:用Tidyverse工具(推荐,代码简洁易读)

先把xts对象转换成普通的data.frame,提取出日期和小时信息,再用pivot_wider重塑成宽格式:

# 加载tidyr包
library(tidyr)

# 将xts数据转换为带时间索引的data.frame
df <- data.frame(
  DateTime = index(ts_data),
  Count = coredata(ts_data)
)

# 提取纯日期和小时(格式为两位数字,比如00、01...23)
df$Date <- as.Date(df$DateTime)
df$Hour <- format(df$DateTime, "%H")

# 重塑为日期×小时的宽格式
wide_traffic_df <- df %>%
  pivot_wider(
    id_cols = Date,          # 行标识:日期
    names_from = Hour,       # 列名来源:小时
    values_from = Count,     # 填充值:车流量
    names_prefix = "Hour_"   # 列名前缀,让列名更清晰
  )

运行后,wide_traffic_df的每行就是一个日期,列从Hour_00到Hour_23,对应当天每个小时的车流量。

方法2:Base R原生实现

如果不想加载额外包,可以用base R的reshape函数完成:

# 先转换为包含Date、Hour、Count的data.frame
df <- data.frame(
  Date = as.Date(index(ts_data)),
  Hour = format(index(ts_data), "%H"),
  Count = coredata(ts_data)
)

# 重塑为宽格式
wide_traffic_base <- reshape(df,
                             idvar = "Date",
                             timevar = "Hour",
                             direction = "wide",
                             sep = "_")

这种方法生成的列名是Count_00、Count_01,你可以根据需要修改列名。

方法3:直接操作xts对象

如果你想直接基于xts对象处理,可以按日期拆分后再组合成矩阵:

# 按日期拆分xts数据
daily_data <- split(ts_data, "days")

# 将每日的24小时数据转为矩阵行,缺失小时用NA填充
wide_traffic_xts <- do.call(rbind, lapply(daily_data, function(day_data) {
  # 确保每个日期都有24个数据点,不足的补NA
  day_values <- coredata(day_data)
  if(length(day_values) < 24) {
    c(day_values, rep(NA, 24 - length(day_values)))
  } else {
    day_values
  }
}))

# 转换为data.frame并设置清晰的列名和行名
wide_traffic_xts <- as.data.frame(wide_traffic_xts)
colnames(wide_traffic_xts) <- paste0("Hour_", sprintf("%02d", 0:23))
rownames(wide_traffic_xts) <- names(daily_data)

注意事项

  • 要确保原始数据的时间序列是连续的小时数据,如果存在缺失的小时段,上面的代码会自动用NA填充,保证每行都是24列的结构。
  • 如果你需要处理缺失值,可以在重塑后用na.fill()(xts包)或者tidyr::fill()来填充。

内容的提问来源于stack exchange,提问作者Jothi Prakash Anandan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:55:46