【问题标题】:how to get tsclean working on data frame with multiple time series如何让 tsclean 处理具有多个时间序列的数据帧
【发布时间】:2017-11-26 20:37:07
【问题描述】:

我正在根据 hts 包创建预测,但在此之前,我需要清理数据中的异常值和缺失值。

为此,我想到了使用 forecast 包中的 tsclean 函数。我将数据存储在数据框中,其中包含我希望清理的多列(时间序列)。我可以在只有一次系列时使该功能起作用,但由于我确实有很多,我正在寻找一种聪明的方法来做到这一点。

运行代码时:

SFA5 <- ts(SFA4, frequency=12, start=c(2012,1), end=c(2017,10)) 
ggt <- tsclean(SFA5[1:70, 1:94], replace.missing = TRUE)

我收到此错误消息:

Error in na.interp(x, lambda = lambda) : The time series is not univariate.

数据在这里:

https://www.dropbox.com/s/dow2jpuv5unmtgd/Data1850.xlsx?dl=0

我的问题是:我做错了什么或者是执行循环序列的唯一解决方案

【问题讨论】:

    标签: r time-series forecasting


    【解决方案1】:

    错误消息表明该函数仅将单变量时间序列作为其第一个参数。因此,您可能已经猜到了,您需要将tsclean 应用于每一列。

    library(forecast)
    ggt <- sapply(X = SFA5[1:70, 1:94], FUN = tsclean)
    

    【讨论】:

    • 感谢您的帮助。我对 R 很陌生,所以这确实帮助我做了很多“循环”:-)
    • 不客气。对于此类任务,您可能还想阅读这篇关于apply 家庭here 的精彩帖子。还可以查看 purrr 包中的 map 函数。
    • 完美。感谢您的参考。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-28
    • 1970-01-01
    • 2016-09-04
    • 2021-06-27
    • 1970-01-01
    • 2020-09-29
    • 2020-12-04
    相关资源
    最近更新 更多