【发布时间】:2015-03-18 11:21:12
【问题描述】:
我对 R 比较陌生,所以请多多包涵。我正在尝试掌握基本的不规则时间序列分析。
这就是我的数据文件的样子,大约 40k 行。间距不总是正好是 20 秒。
Time, Avg
04/03/2015 00:00:23,20.24
04/03/2015 00:00:43,20.38
04/03/2015 00:01:03,20.53
04/03/2015 00:01:23,20.54
04/03/2015 00:01:43,20.53
data <- read.zoo("data.csv",sep=",",tz='',header=T,format='%d/%m/%Y %H:%M:%S')
我很乐意按分钟汇总
data <- to.minutes(as.xts(data))
以“open”列为例
head(data[,1])
as.xts(data).Open
2015-03-04 00:00:43 20.24
2015-03-04 00:01:43 20.53
2015-03-04 00:02:43 20.47
2015-03-04 00:03:43 20.38
2015-03-04 00:04:43 20.05
2015-03-04 00:05:43 19.84
data <- data[,1]
这就是我崩溃的地方
fit <- stl(data, t.window=15, s.window="periodic", robust=TRUE)
Error in stl(data, t.window = 15, s.window = "periodic", robust = TRUE) :
series is not periodic or has less than two periods
我已经用谷歌搜索了错误消息,但对我来说并不是很清楚。周期=频率?对于我的数据集,我希望季节性组件是每周一次。
frequency(data) <- 52
fit <- stl(data, t.window=15, s.window="periodic", robust=TRUE)
Error in na.fail.default(as.ts(x)) : missing values in object
?
head(as.ts(data))
[1] 20.24 NA NA NA NA NA
呃,什么?
我做错了什么?我如何准备 xts 对象才能正确地将其传递给 stl()?
谢谢。
【问题讨论】:
-
如果您提供reproducible example,会更容易提供帮助。
标签: r time-series xts