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

如何在R中合并时间序列预测结果并保留分类标识?

问题原因

forecast包生成的forecast是特殊的S3类对象,调用data.frame()转换时,只会默认提取预测核心字段(点预测值、各置信区间上下限),手动添加的class属性不会被自动包含到转换后的数据集里,所以合并后看不到这个标识字段。

解决办法

方法1:先转成data.frame再添加class字段

先把forecast对象转换成标准data.frame,再追加class标识,之后再合并:

# 处理第一个模型的预测结果
df1 <- as.data.frame(forecast_data1)
df1$class <- 1

# 处理第二个模型的预测结果
df2 <- as.data.frame(forecast_data2)
df2$class <- 2

# 合并两个数据集
combined_df <- rbind(df1, df2)

方法2:用dplyr链式操作(更简洁)

既然已经加载了dplyr,可以用链式调用一步完成转换和字段添加,再用bind_rows合并(比基础rbind兼容性更好):

df1 <- forecast_data1 %>% 
  as.data.frame() %>% 
  mutate(class = 1)

df2 <- forecast_data2 %>% 
  as.data.frame() %>% 
  mutate(class = 2)

combined_df <- bind_rows(df1, df2)

方法3:保留时间索引的可读性

如果需要明确的时间列对应预测值,可以手动提取时间索引,一起存入data.frame:

df1 <- data.frame(
  forecast_date = time(forecast_data1),
  as.data.frame(forecast_data1),
  class = 1
)

df2 <- data.frame(
  forecast_date = time(forecast_data2),
  as.data.frame(forecast_data2),
  class = 2
)

combined_df <- rbind(df1, df2)

运行以上任意一种方法后,合并后的combined_df都会包含class字段,能清晰区分两个模型的预测结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 17:31:07