match.arg(opt_crit)中的错误:“ arg”必须为NULL或字符向量

时间:2019-07-03 14:01:55

标签: r forecast

match.arg(opt_crit)中的错误:“ arg”必须为NULL或字符向量

尝试在r中运行我的脚本时发生。

我试图找到解决方案,但这似乎很具体,对我几乎没有帮助。

我的数据集包含3936个obs,包含7个变量。

环境,技能,数量,日期时间,年,月,日

Classes ‘tbl_df’, ‘tbl’ and 'data.frame':   3696 obs. of  7 variables:
 $ environment: chr  "b2b" "b2b" "b2b" "b2b" ...
 $ skill      : chr  "BO Bedrift" "BO Bedrift" "BO Bedrift" "BO Bedrift" ...
 $ year       : num  2017 2017 2017 2017 2017 ...
 $ month      : num  1 1 1 1 1 2 2 2 2 3 ...
 $ day        : num  2 9 16 23 30 6 13 20 27 6 ...
 $ volume     : num  360 312 305 222 113 ...
 $ datetime   : Date, format: "2017-01-02" "2017-01-09" "2017-01-16" "2017-01-23" ...

但是尝试运行

volume_ets <- volume_tsbl %>% ETS(volume)

此消息显示在控制台中

Error in match.arg(opt_crit) : 'arg' must be NULL or a character vector

我尝试了一些捷径,但没有帮助

volume_tsbl$volume <- as.numeric(as.character(volume_tsbl$volume))

试图运行

volume_ets <- volume_tsbl %>% ETS(volume)

此消息显示在控制台中

Error in match.arg(opt_crit) : 'arg' must be NULL or a character vector

我尝试了一些捷径,但没有帮助

volume_tsbl$volume <- as.numeric(as.character(volume_tsbl$volume))

volume_ets <- volume_tsbl %>% ETS(volume)

我的摆姿势看起来像这样;

volume_tsbl <- volume %>¤ as_tsibble(key = c(skill, environment), index = c(datetime), regular = TRUE )

期望代码运行,但不会。

1 个答案:

答案 0 :(得分:0)

这是在2018年末进行的接口更改的结果。更改是使模型函数(例如ETS())创建模型定义,而不是拟合模型。本质上,ETS()不再接受数据作为输入,并且ETS模型的规范将变为ETS(volume)

当前寓言中的等效代码是:

volume_ets <- volume_tsbl %>% model(ETS(volume))

使用model()函数将一个或多个模型定义(在这种情况下为ETS(volume))训练到给定的数据集。

您可以访问pkgdown网站以获取更多详细信息:http://fable.tidyverts.org/ 特别是,此处记录了ETS()函数:http://fable.tidyverts.org/reference/ETS.html