如何一次分解多个时间序列(列)?

时间:2016-10-12 14:10:55

标签: r

我有一张包含以下数据的Excel工作表:144列,名称为标题,729个值(随时间返回) - 见图片。我通过ts管理并分解函数来分解一列(如果文件只有一列)。一次读取整个文件时,如何分别分解每列?所以我一次性分别为每一列提供每个季节性组件。我找不到一种方法来既可以一次完成整张纸,也可以只选择一列。

我的数据:

spread sheet

R中的输出:

Output

R中的输出图:

Output Plot

作为最后一步,我让R从原始数据中扣除季节性:

Output Final

到目前为止我的命令:

ts_svi = ts(svi, frequency = 7)
decompose_svi = decompose(ts_svi, type = "additive")
adjust_svi=ts_svi - decompose_svi$seasonal
adjust_svi

1 个答案:

答案 0 :(得分:0)

我遇到了相同的问题,并通过在系列名称上使用lapply来解决它(必须指定):

colnames(ts) <- someNames

ts_dec <- lapply(colnames(ts), function(x) {decompose(ts[, x], type = "additive")})

或者,使用对象名称:

decompose_svi <- lapply(colnames(ts_svi), function(x) {decompose(ts_svi[, x], type = "additive")})

结果将是一个很大的清单,但您将能够获得所有季节性数据。希望对您有所帮助。