Yes, that will definitely create a time series with the desired frequency, though the actual time index won't correspond to the original so you may need to exercise a little bit of caution in interpreting the outputs of ets().
Glad this could help, Michael On Wed, Nov 9, 2011 at 9:15 AM, <rkevinbur...@charter.net> wrote: > Thank you. > > I am glad I asked. It wasn't giving answers that I expected and now I know > why. > > Rather than pull in another package just for this functionality, I will just > reassign the frequency by generating a new time series like: > > dswin <- window(ds, start=..., end=...) > dswin <- ts(dswin, frequency=1) > > That should work shouldn't it? > > Thanks again. > > Kevin > > > On Tue, Nov 8, 2011 at 9:40 PM, R. Michael Weylandt wrote: > >> Like Denis said, you are asking ts to do things that don't make sense; >> in particular, some of your statements suggest you don't fully >> understand what window does or what its frequency argument does. >> Specifically, when you set frequency = 1 in window, that doesn't mean >> take a window and treat it as if it has frequency 1; rather take the >> subseries corresponding to yearly observations. Since 53 is prime, >> there is no regular subseries you can extract with window() other than >> the original series and the yearly series. ts objects are required to >> have a frequency so statements like "now that I am taking a subset >> there is no frequency" don't really make sense. >> >> Take a look at these examples: >> >> ## Create some working data >> ds.53 <- ts(rnorm(53*2), frequency=53, start=c(2000,10)) >> ds.48 <- ts(rnorm(48*2), frequency = 48, start = c(2000,10)) >> >> ## These all work >> window(ds.53, frequency = 1) # Returns elements 1 & 54 of ds.53 >> window(ds.53, frequency = 53) # Returns every element of ds.53 >> >> window(ds.48, frequency = 1) # Returns elements 1 & 54 of ds.53 >> window(ds.48, frequency = 12) # Returns elements seq(1, 48, by = 4) of >> ds.48 >> window(ds.48, frequency = 48) # Returns every element of ds.48 >> >> ## These don't >> window(ds.53, frequency = 7) >> window(ds.48, frequency = 9) >> >> Here's how you could do the same with xts. >> >> library(xts) >> library(forecast) >> x = xts(rnorm(53*2), Sys.Date() + 365*seq(0, 2, by = 1/53)) >> ets(x) # Auto-conversion to ts >> >> Michael >> >> >> On Tue, Nov 8, 2011 at 8:19 PM, Kevin Burton <rkevinbur...@charter.net> >> wrote: >>> >>> The problem is when I use the window function an try to extract a subset >>> of >>> the time series an specify the frequency as 1 (not only will ets not take >>> a >>> time series with a frequency greater than 24, now that I am taking a >>> subset >>> there is no frequency so I would like to set it to 1 (which is one of the >>> arguments to the window function) but it does not produce what I expect. >>> That is the problem. I fail to see the relationship of the discussion of >>> what frequency is and how to use the forecast package with this problem. >>> >>> -----Original Message----- >>> From: Dennis Murphy [mailto:djmu...@gmail.com] >>> Sent: Tuesday, November 08, 2011 6:20 PM >>> To: Kevin Burton >>> Cc: R. Michael Weylandt; r-help@r-project.org >>> Subject: Re: [R] window? >>> >>> The ets() function in the forecast package requires either a numeric >>> vector >>> or a Time-Series object (produced from ts()). The frequency argument in >>> ts() >>> refers to the time duration between observations; e.g., frequency = 7 >>> means >>> that the data are weekly; frequency = 12 means that the data are monthly; >>> frequency = 4 means that the data are quarterly. You can see this from >>> the >>> examples on the help page of ts: >>> ?ts at the R prompt. >>> >>> The example associated with the forecast::ets() function uses the >>> USAccDeaths data: >>> >>> data(USAccDeaths) >>> USAccDeaths ## monthly data for six years >>> # Simulate the same structure with ts: >>> u <- ts(rnorm(72), start = c(1973, 1), frequency = 12) u >>> >>> # Evidently you want to produce a multivariate series; # here's one way >>> with >>> monthly frequency: >>> v <- ts(matrix(rnorm(106), ncol = 2), start = c(2001, 1), frequency = 12) >>> v >>> >>> Is that more or less what you were after? >>> >>> Dennis >>> >>> On Tue, Nov 8, 2011 at 2:04 PM, Kevin Burton <rkevinbur...@charter.net> >>> wrote: >>>> >>>> I expect the frequency to be set to what I set it at and the window to >>>> return all of the data in the window from the original time series. >>>> The error is not because it is prime. I can generate a time series >>>> with just 52 values (or 10) and it still occurs. I am building these >>>> objects for use with the 'forecast' packages and one of the methods >>>> 'ets' cannot handle a frequency above 24 so I set it (or try to) to 1. >>>> Will 'window' take z zoo or xts object? Can I convert from zoo or xts to >>> >>> ts? >>>> >>>> -----Original Message----- >>>> From: R. Michael Weylandt [mailto:michael.weyla...@gmail.com] >>>> Sent: Tuesday, November 08, 2011 2:28 PM >>>> To: Kevin Burton >>>> Cc: r-help@r-project.org >>>> Subject: Re: [R] window? >>>> >>>> I'm not entirely sure that your request makes sense: what do you >>>> expect the frequency to be? It makes sense to me as is...Might your >>>> troubles be because >>>> 53 is prime? >>>> >>>> More generally, most people don't like working with the raw ts class >>>> and prefer the zoo or xts packages because they are much more pleasant >>>> for most time series work. You might want to take a look into those. >>>> >>>> Michael >>>> >>>> On Tue, Nov 8, 2011 at 3:18 PM, Kevin Burton >>>> <rkevinbur...@charter.net> >>>> wrote: >>>>> >>>>> This doesn't seem to work: >>>>> >>>>> >>>>> >>>>>> d <- rnorm(2*53) >>>>> >>>>>> ds <- ts(d, frequency=53, start=c(2000,10)) >>>>> >>>>>> dswin <- window(ds, start=c(2001,1), end=c(2001,10), frequency=1) >>>>> >>>>>> dswin >>>>> >>>>> Time Series: >>>>> >>>>> Start = 2001 >>>>> >>>>> End = 2001 >>>>> >>>>> Frequency = 1 >>>>> >>>>> [1] 1.779409 >>>>> >>>>> >>>>> >>>>>> dswin <- window(ds, start=c(2001,1), end=c(2001,10)) >>>>> >>>>>> dswin >>>>> >>>>> Time Series: >>>>> >>>>> Start = c(2001, 1) >>>>> >>>>> End = c(2001, 10) >>>>> >>>>> Frequency = 53 >>>>> >>>>> [1] 1.7794090 0.6916779 -0.6641813 -0.7426889 -0.5584049 >>>>> -0.2312959 >>>>> >>>>> [7] -0.0183454 -1.0026301 0.4534920 0.6058198 >>>>> >>>>>> >>>>> >>>>> >>>>> >>>>> The problem is that when the frequency is specified only one value >>>>> shows up in the window. When no frequency is specified I get all 10 >>>>> values but now the time series has a frequency that I don't want. >>>>> >>>>> >>>>> >>>>> Comments? >>>>> >>>>> >>>>> >>>>> Kevin >>>>> >>>>> >>>>> >>>>> >>>>> [[alternative HTML version deleted]] >>>>> >>>>> ______________________________________________ >>>>> 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. >>>>> >>>> >>>> ______________________________________________ >>>> 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. >>>> >>> >>> > ______________________________________________ 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.