无法将预测结果附加到向量或数据框中

Unable to append forecast results into a vector or dataframe

我有一个数据框,每一列代表一年的数据(从 2000 年到 2018 年)。我正在使用简单的 forecast() 函数来预测 2019 年的结果。

问题是在使用 for 循环为 4000 多行生成预测时,我无法为每一行生成包含预测的矢量或数据框。

这是我使用的代码:

Data = data.frame(2000 = c(...),2001 = c(...),...,2018 = c(...))

dfe = c()

for (i in 1:nrow(Data)) {
    tseries = ts(unlist(Data[i,6:24], start = 2000, end = 2018, frequency = 1)
    fo = forecast(tseries, h = 1)
    valfo = append(dfe, as.vector(fo$mean))
}

我期待一个向量,其中包含所有 4000 多行数据的 2019 年预测。但是当我 运行 这段代码时,R 抛出一个值。

这似乎只是您如何分配结果的问题。您当前的代码正在覆盖每个循环结束时的结果。

试试这个:

Data = data.frame("2017" = c(20,30,45,66,12), "2018" = c(11,54,65,22,78), "2019" = c(9,76,33,53,77))

dfe = c()

for (i in 1:nrow(Data)) {
  tseries = ts(unlist(Data[i,1:3]), start = 2017, end = 2019, frequency = 1)
  fo = forecast(tseries, h = 1)
  dfe[[i]] <- as.vector(fo$mean)
  valfo <- unlist(dfe)
}

这应该会为您提供预测向量 valfo