问题描述
这是我的代码:
library(fpp3)
val <- seq(1,100,1)
time <- seq.Date(as.Date("2010-01-01"),by = "day",length.out = 100 )
df <- data.frame(val = val,time = time)
fit <- df %>% as_tsibble(.,index = time) %>%
model(arima = ARIMA(val))
fc<- fit %>% forecast(h=7)
它生成:
Error: Problem with `mutate()` input `arima`.
x Input must be a vector,not a `fcdist` object.
i Input `arima` is `(function (object,...) ...`.
这基本上与此example中的相同。我想念什么?我已经仔细检查过胖手指错误。
解决方法
与fableTools
‘0.2.1’
和fpp3
0.3
fit %>%
forecast(h = 7)
# A fable: 7 x 4 [1D]
# Key: .model [1]
# .model time val .mean
# <chr> <date> <dist> <dbl>
#1 arima 2010-04-11 N(100,1) 100
#2 arima 2010-04-12 N(100,2) 100
#3 arima 2010-04-13 N(100,3) 100
#4 arima 2010-04-14 N(100,4) 100
#5 arima 2010-04-15 N(100,5) 100
#6 arima 2010-04-16 N(100,6) 100
#7 arima 2010-04-17 N(100,7) 100
,
也许是名称空间问题。例如,某些已加载的软件包掩盖了fable
,fabletools
函数。
在这种情况下很容易发生,因为仅通过fable
调用加载了fabletools
,library(fpp3)
。
您未致电,例如fable::forecast
中的代码,并且您之前也没有加载library(fable)
。
仅加载library(fpp3)
时,它不会掩盖fable
的功能。
例如
library(forecast)
library(fpp3)
在这种情况下,您的代码将调用forecast::forecast()
。 library(fpp3)
调用不会掩盖其他软件包的forecast
,model
,ARIMA
函数。因此,如果以前在命名空间中加载了forecast
,在这种情况下,您将调用forecast::forecast()
而不是fable::forecast()
。
如果您致电
library("fpp3")
library("forecast")
您得到:
Attache Paket: ‘forecast’
The following objects are masked from ‘package:fabletools’:
accuracy,forecast
因此,如果您之前曾调用过library(fable)
,library(fabletools)
,也许会行得通,因为这样做可以确保类似的命名函数被屏蔽。或使用fabletools::
。这也可能是为什么它在更新后可以工作的原因。因为命名空间没有其他功能和已加载的软件包。