提取预测数据

问题描述 投票:0回答:1

我有一个数据框,由三列(AJT,NET和SAT)组成。我的目的是使用预测包对这三个系列中的每一个进行预测。因此我将数据帧转换为ts对象并使用snaive函数进行预测,因此我编写了以下代码行:

#CODE
      library(forecast)

# Data set
      DATA_SET<-data.frame(
        AJT=seq(1, 48, by = 2),
        NET=seq(1, 24, by = 1),
        SAT=seq(1, 94, by = 4)
        )

      # Making TS object
      TS_SALES<-ts(DATA_SET,start=c(2016,1),frequency = 12)

# Making forecasting with Forecast package      
      SNAIVE_AJT<-snaive(TS_SALES[, 'AJT'],h=5) 
      SNAIVE_NET<-snaive(TS_SALES[, 'NET'],h=5) 
      SNAIVE_SAT<-snaive(TS_SALES[, 'SAT'],h=5) 

# Union forecast in list
      SNAIVE_UNION<-mapply(SNAIVE_AJT, SNAIVE_NET,SNAIVE_SAT, FUN=list, SIMPLIFY=FALSE) 

来自snaive函数的所有输出我放入SNAIVE_UNION,其中包含预测的所有结果。因此,这里最重要的组成部分是“均值”,其中包含按月计算的结果。

SNAIVE_UNION[["mean"]]
  # 
  # # [[1]]
  # # Jan Feb Mar Apr May
  # # 2018  25  27  29  31  33
  # # 
  # # [[2]]
  # # Jan Feb Mar Apr May
  # # 2018  13  14  15  16  17
  # # 
  # # [[3]]
  # # Jan Feb Mar Apr May
  # # 2018  49  53  57  61  65

所以在这里,我的目的是将结果从SNAIVE_UNION [[“mean”]]输入到数据表中,如下表所示,带有一些函数循环,用于或其他函数

        Jan Feb Mar Apr May
------------------------------
AJT     25  27  29  31  33
NET     13  14  15  16  17
SAT     49  53  57  61  65

我问这个是因为这个时间序列只是整个系列的一小部分,我想自动化这段代码。

r for-loop dplyr forecasting
1个回答
2
投票

您可以使用:

pred <- do.call(rbind, SNAIVE_UNION[["mean"]])

#      [,1] [,2] [,3] [,4] [,5]
# [1,]   25   27   29   31   33
# [2,]   13   14   15   16   17
# [3,]   49   53   57   61   65
© www.soinside.com 2019 - 2024. All rights reserved.