I am struggling to convert a zoo
objects to a ts
object.
I have a huge data.frame "test" with quarterly hour data, which looks like this:
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
I want to make some predictions (mostly ARIMA
) and thought the forecast
package would be a good idea for that.
First of I formated the data away from characters.
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
Since I needed to do an interpolation and construct lags, I also used the zoo
package using the date variable as index, which worked great. The `zoo
package was recommended to me while dealing with time series data.
library(zoo)
test.zoo <- zoo(test[,2:3],test[,1])
test.zoo #date is now the Index and and the zoo objects works nicely
But then I realized that forecasting only seems to work with ts
objects. (Is that true?)
When I tried to convert the zoo
object to a ts
object, my time index disappeared. I think this might be due to not using a proper frequency. However I am somewhat lost as to what would be a working frequency for this dataset and with ts
objects in general.
test.ts <- as.ts(test.zoo)
test.ts
How do I convert this zoo
object back to a ts
object I can use for forecasting?
Thanks!
The forecast package only works with ts
objects as you suspected.
You can use test.ts
with the forecast package. For example
plot(forecast(test.ts[,1]))