R Help Community
I'm trying to understand time series (TS) objects. Thought I understood but recently have run into a series of error messages that I'm not sure how to handle. I have 15 years of quarterly data and I typically create a TS object via something like... data.ts <- ts(mydata, start = 2002, frequency = 4) this create a matric as opposed to a vector object as I receive a univariate error when I try to decompose the data using the STL function data.stl <- stl(data.ts, "periodic") Error in stl(data.ts, "periodic") : only univariate series are allowed ok so is.vector(data.ts) [1] FALSE so to convert to a vector I'll use data.ts <- as.vector(data.ts) but then I lose the frequency as the periods as the data becomes frequency = 1 data.ts <- stl <- stl(data.ts, "periodic") Error in stl(data.ts, "periodic") : series is not periodic or has less than two periods. So am I missing a parameter or is there a more general/proper way to create a time series object? First time I've run into this problem . I can always decompose via an alternative methods so there are work arounds. But just trying to understand what I'm not doing programmatically at this point. Jeff Reichman ______________________________________________ [hidden email] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. |
On Tue, 13 Mar 2018, JEFFERY REICHMAN wrote:
> R Help Community > > I'm trying to understand time series (TS) objects. Thought I understood > but recently have run into a series of error messages that I'm not sure > how to handle. I have 15 years of quarterly data and I typically create > a TS object via something like... > > data.ts <- ts(mydata, start = 2002, frequency = 4) > > this create a matric as opposed to a vector object This depends on what "mydata" is which you haven't shown... If "mydata" is a univariate vector, everything works ok: mydata <- rnorm(15 * 4) data.ts <- ts(mydata, start = 2002, frequency = 4) data.stl <- stl(data.ts, "periodic") However, if "mydata" is a matrix, e.g., a 3-column matrix in the example below: mydata <- matrix(rnorm(15 * 4 * 3), ncol = 3) then the error occurs. Furthermore, the same problem will occur if mydata is 1-column matrix or a 1-column data frame. > as I receive a univariate error when I try to decompose the data using > the STL function > > data.stl <- stl(data.ts, "periodic") > Error in stl(data.ts, "periodic") : only univariate series are allowed > > ok so > > is.vector(data.ts) > [1] FALSE This is always FALSE for a "ts" object, even if it is univariate, because it has further attributes, namely the time-series properties (tsp). > so to convert to a vector I'll use > data.ts <- as.vector(data.ts) This will drop the "ts" class. The cleanest way is probably to create a vector "mydata" and then the univariate "data.ts". hth, Z > but then I lose the frequency as the periods as the data becomes frequency = 1 > data.ts <- stl <- stl(data.ts, "periodic") > Error in stl(data.ts, "periodic") : > series is not periodic or has less than two periods. > > So am I missing a parameter or is there a more general/proper way to create a time series object? First time I've run into this problem . I can always decompose via an alternative methods so there are work arounds. But just trying to understand what I'm not doing programmatically at this point. > > Jeff Reichman > > ______________________________________________ > [hidden email] mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > ______________________________________________ [hidden email] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. |
In reply to this post by reichmaj
Perhaps mydata is a matrix or matrix-like object, and you should create one ts object for each column?
-- Sent from my phone. Please excuse my brevity. On March 13, 2018 7:25:31 AM PDT, JEFFERY REICHMAN <[hidden email]> wrote: >R Help Community > >I'm trying to understand time series (TS) objects. Thought I >understood but recently have run into a series of error messages that >I'm not sure how to handle. I have 15 years of quarterly data and I >typically create a TS object via something like... > >data.ts <- ts(mydata, start = 2002, frequency = 4) > >this create a matric as opposed to a vector object as I receive a >univariate error when I try to decompose the data using the STL >function > >data.stl <- stl(data.ts, "periodic") >Error in stl(data.ts, "periodic") : only univariate series are allowed > >ok so > >is.vector(data.ts) >[1] FALSE > >so to convert to a vector I'll use >data.ts <- as.vector(data.ts) > >but then I lose the frequency as the periods as the data becomes >frequency = 1 >data.ts <- stl <- stl(data.ts, "periodic") >Error in stl(data.ts, "periodic") : > series is not periodic or has less than two periods. > >So am I missing a parameter or is there a more general/proper way to >create a time series object? First time I've run into this problem . I >can always decompose via an alternative methods so there are work >arounds. But just trying to understand what I'm not doing >programmatically at this point. > >Jeff Reichman > >______________________________________________ >[hidden email] mailing list -- To UNSUBSCRIBE and more, see >https://stat.ethz.ch/mailman/listinfo/r-help >PLEASE do read the posting guide >http://www.R-project.org/posting-guide.html >and provide commented, minimal, self-contained, reproducible code. ______________________________________________ [hidden email] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. |
Free forum by Nabble | Edit this page |