On Thu, 10 Jan 2008, tom soyer wrote: > Hi, > > I have two questions about ts. > > (1) How do I subset a ts object and still preserve the time index? for > example: > > > x=ts(1:10, frequency = 4, start = c(1959, 2)) # the ts object > > x > Qtr1 Qtr2 Qtr3 Qtr4 > 1959 1 2 3 > 1960 4 5 6 7 > 1961 8 9 10 > I don't want the 1st 2 elements, so I could subset like this: > > x[3:length(x)] > [1] 3 4 5 6 7 8 9 10 > > But then the time index is lost. I could use window(), but then I have to > specify start and end manually. Is there a way to subset a ts object so that > the time index is preserved for the data extracted without specifying start > and end data by hand?
I think window() is the way to go with "ts". "zoo"/"zooreg" additionally provide what you ask for: library("zoo") x <- ts(1:10, frequency = 4, start = c(1959, 2)) z <- as.zoo(x) z[3:length(z)] The time formatting is somewhat nice when you declare explicitely that this is "yearqtr" data: time(z) <- as.yearqtr(time(z)) z[3:length(z)] > (2) How do I join two ts objects together end to end? for example: > > x=ts(1:10, frequency = 4, start = c(1959, 2)) # the 1st ts object > > y=ts(11:15, frequency = 4, start = c(1961, 4)) # the 2nd ts object > > As you can see, y is just a continuation of x. I would like to add y to the > end of x while preserving the time index. I could use this: > > ts(c(x,y),start=start(x),frequency=4) > > But I am wondering if there is a more efficient way of doing this, i.e., is > it really necessary to specify start and frequency again when they are > already a part of the original ts objects? "zoo" also provides this: x <- ts(1:10, frequency = 4, start = c(1959, 2)) y <- ts(11:15, frequency = 4, start = c(1961, 4)) c(as.zoo(x), as.zoo(y)) or you can also coerce back to "ts" as.ts(c(as.zoo(x), as.zoo(y))) Personally, I tend to do my data manipulations in "zoo" (not very surprisingly ;-)) but might coerce the resulting series to "ts" if I want to use certain modeling functions. Z ______________________________________________ R-help@r-project.org mailing list 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.