Reputation: 6657
I want to create an xts
object in R, which I then want to decompose to seasonal and trend.
> require(xts)
> require(lubridate)
> chicos$date <- ymd(chicos$date)
> ctr.ts <- xts(chicos[, 7], order.by = chicos[, 8], frequency = 365)
> plot(ctr.ts, main="Meaningful title")
When I try to decompose it, I get this error message..
> plot(decompose(ctr.ts))
Error in decompose(ctr.ts) : time series has no or less than 2 periods
My observations are daily, and span from 2014-12-01 to 2015-02-25. Did I set the wrong frequency
?
Upvotes: 3
Views: 7984
Reputation: 1934
For the frequency of the time series of type xts: By default xts has a daily frequency, So you don't need to include any frequency if it is daily:
ctr.xts <- xts(chicos[, 7], order.by = chicos[, 8])
The R function decompose() works only with objects of type ts. So, you may like to convert the xts object to ts by issuing the following lines:
attr(ctr.xts, 'frequency') <- 7 # Set the frequency of the xts object to weekly
periodicity(ctr.xts) # check periodicity: weekly
plot(decompose(as.ts(ctr.xts))) # Decompose after conversion to ts
Also, you may like to try different frequencies:
Hope this may help.
Upvotes: 7