1

这是我的代码:

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, ...) ...`.

这与本示例中的基本相同。我错过了什么?我已经仔细检查了胖手指错误。

4

2 回答 2

2
于 2020-09-10T20:59:45.383 回答
1

也许是一个命名空间问题。例如,加载了一些包,这些包掩盖了fable,fabletools功能。

在这种情况下很容易发生,因为你加载了fablefabletools只需要一个library(fpp3)电话。您没有fable::forecast在代码中调用 eg 并且之前也没有加载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::。这也可能是它在更新后工作的原因......因为命名空间当时没有其他功能和加载的包。

于 2020-09-11T00:05:56.183 回答