I have following function:
ts.dat <- ts(data=dat$sales, start = 1, frequency = 12)
ts. dat returns
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1 9000 8600 8500 8600 8500 8300 8600 9100 8800 8700 9300 7900
2 7900 8800 8500 8900 9000 8800 8800 9100 9500 8900 9200 8400
3 8400 9200 9500 9100 8700 8300 NA
However,
plot(stl(ts.dat, s.window=12))
returns
Error in na.fail.default(as.ts(x)) : missing values in object'plot':
I tried na.action=na.pass, but it didn't work. Any idea how to deal with the NA, if that is the reason?
Also: Any chance to take the first date from dat as the start?
Any idea how to deal with the NA, if that is the reason?
You need to use na.action = na.omit, i.e., dropping NA when doing computation.
plot(stl(ts.dat, s.window=12, na.action = na.omit))
The na.pass will simply assume NA as normal observation. But it will still produce error as stl() later calls compiled code and can not recognize NA.
Any chance to take the first date from
datas the start?
Have a look at the examples at the bottom of ?ts:
## Using July 1954 as start date:
gnp <- ts(cumsum(1 + round(rnorm(100), 2)),
start = c(1954, 7), frequency = 12)
To start from July 1954, put start = c(1954, 7).