使用预测

时间:2017-06-16 13:51:28

标签: r foreach parallel-processing forecasting

我不知道这是否与foreach有关,但我想更多的预测......

下面只是一个较大的表的一个小例子,我想并行运行这个脚本,因为它需要一些时间。我收到错误消息:

“{:task 2 failed - ”参数的长度为零“

我不知道为什么单独运行时预测功能正常工作。

# Test Data
Data <- data.frame(Date = as.Date(c("2017-01-01", "2017-02-01", "2017-03-01", "2017-04-01", "2017-05-01", "2017-06-01")),
               A    = c(1,6,3,6,5,6),
               B    = c(6,5,6,3,6,1))
Data <- as.xts(Data[-1], Data[,1]) #convert to xts for the forecast package                                      

library(foreach)
library(doSNOW)
library(forecast)
cl <- makeCluster(2, type="SOCK") # for 2 cores machine
registerDoSNOW (cl)

# forecast the values in each column and bind the result of the forecast together by column to get one data.frame
Result <- foreach(j = 1:ncol(Data), .combine = "cbind", .packages = "forecast") %dopar% {forecast(Data[,j], h = 6L)$mean}

stopCluster(cl)


# Result how it should look like
Result <- data.frame(A    = c(4.7,4.7,4.7,4.7,4.7,4.7),
                     B    = c(4.4,4.4,4.4,4.4,4.4,4.4))

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

错误源于xts包未导出。环境需要访问[对象xts的{​​{1}}方法。

您可以使用Data(建议)或明确使用.packages = c("forecast","xts")(未建议,但包括在内以证明错误发生的原因)来解决此问题。

注意:输出与您在问题中发布的预期结果不匹配

xts:::`[.xts`