我正在努力将zoo
个对象转换为ts
个对象。
我有一个巨大的data.frame“test”,其中包含季度小时数据,如下所示:
date <- c("2010-07-04 09:45:00", "2010-07-04 10:00:00", "2010-07-04 10:15:00", "2010-07-04 10:30:00", "2010-07-04 10:45:00", "2010-07-04 11:00:00")
nrv <- c("-147.241", "-609.778", "-432.289", "-340.418", "-73.96" , "-533.108")
tt <- c("3510.7", "3608.5", "3835.7", "4003.7", "4018.8", "4411.9")
test <- data.frame(date,nrv,tt)
test
我想做一些预测(主要是ARIMA
),并认为forecast
包对此是一个好主意。
我首先从字符中形成了数据。
test$date <- strptime(test$date,format="%Y-%m-%d %H:%M")
test$nrv <- as.numeric(as.character(test$nrv))
test$tt <- as.numeric(as.character(test$tt))
str(test) #date is POSIXlt object
由于我需要进行插值并构造滞后,我还使用zoo
包使用日期变量作为索引,这非常有用。在处理时间序列数据时,我向我推荐了`zoo
包。
library(zoo)
test.zoo <- zoo(test[,2:3],test[,1])
test.zoo #date is now the Index and and the zoo objects works nicely
但后来我意识到预测似乎只适用于ts
个对象。 (这是真的吗?)
当我尝试将zoo
对象转换为ts
对象时,我的时间索引消失了。我想这可能是因为没有使用合适的频率。但是,我对这个数据集的工作频率以及一般ts
个对象有点遗失。
test.ts <- as.ts(test.zoo)
test.ts
如何将此zoo
对象转换回我可用于预测的ts
对象?
谢谢!
答案 0 :(得分:3)
预测包仅适用于您怀疑的ts
个对象。
您可以将test.ts
与预测包一起使用。例如
plot(forecast(test.ts[,1]))
答案 1 :(得分:2)
我有同样的问题并使用zooreg函数解决了它。 step1:使用zooreg将动物园对象转换为非动物园,但是类似于objet step2:使用ts函数进一步转换为ts对象