寓言:错误:Mutate输入Arima问题

问题描述

这是我的代码

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
,

也许是名称空间问题。例如,某些已加载的软件包掩盖了fablefabletools函数。

在这种情况下很容易发生,因为仅通过fable调用加载了fabletoolslibrary(fpp3)。 您未致电,例如fable::forecast中的代码,并且您之前也没有加载library(fable)

仅加载library(fpp3)时,它不会掩盖fable的功能。

例如

library(forecast)
library(fpp3)

在这种情况下,您的代码将调用forecast::forecast()library(fpp3)调用不会掩盖其他软件包的forecastmodelARIMA函数。因此,如果以前在命名空间中加载了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::。这也可能是为什么它在更新后可以工作的原因。因为命名空间没有其他功能和已加载的软件包。