使用尼罗河数据集的 tsoutliers 包出现语法错误

Syntax error with tsoutliers package using Nile dataset

我正在尝试使用 tsoutliers 包在时间序列中定位异常值。

我使用的是经典的 Nile 数据集(您可以在此处找到:https://vincentarelbundock.github.io/Rdatasets/datasets.html),但未能成功使 tso() 函数正常工作。

我的代码是:

nile.outliers <- tso(Nile,types = c("AO","LS","TC"))

但是,我收到此语法错误,或者我认为是语法错误:

Error in tso0(x = y, xreg = xreg, cval = cval, delta = delta, n.start = n.start, : trying to get slot "y" from an object (class "data.frame") that is not an S4 object

如果有人能帮我解决这个问题那就太好了!谢谢!

一个狡辩:这不是语法错误(可能来自 R),它是 tsoutliers 包中 tso0 函数的 运行 时间错误。

但是根据您对从何处获取数据的描述,当 tso 需要 "ts" 对象时,您似乎正在传递数据框。您不需要下载数据,它内置于 R 中;所以你删除了你创建的坏的,并使用内置的:

rm(Nile)
nile.outliers <- tso(Nile,types = c("AO","LS","TC"))