Sorry, that last line should read: FUN=function(z){ lz <- length(z) SDF(z,method="lag window", window=taper(type="parzen",n.sample=lz,cutoff= 2*sqrt(lz)), npad=2*lz) }
On Sun, Jan 29, 2012 at 11:29 PM, R. Michael Weylandt <michael.weyla...@gmail.com> wrote: > It's customary to keep the list cc'd. > > I can't run your code without the data, but it does seem to me that > your problem is in the FUN argument, as you guess. > > You have: > > FUN=function(z) SDF(adezoo,method="lag window", > window=taper(type="parzen",n.sample=n.d,cutoff=(2*sqrt(n.d))), > npad=2*n.d) > > But this function doesn't actually act on it's argument: you tell it > to accept something called "z" but then it never gets told to do > anything to "z". Perhaps you meant > > FUN=function(z) SDF(z,method="lag window", > window=taper(type="parzen",n.sample=n.d,cutoff=(2*sqrt(n.d))), > npad=2*n.d) > > I also worry about your use of "n.d"; are you sure you don't want to > use the length of the rolling window? Something more like: > > FUN=function(z){ > lz <- length(z) > SDF(z,method="lag window", > window=taper(type="parzen",n.sample=lz,cutoff= 2*sqrt(lz)), > npad=2*nlz) > } > > Does that fix it? > > Michael > > On Fri, Jan 27, 2012 at 1:06 PM, Jorge Molinos <jgarc...@tcd.ie> wrote: >> Hi Michael, >> >> Sorry, I've been trying to use rollapply with my function but it seems I >> can't get it to work properly. The function seems to be dividing the time >> series accordingly (every 1) and using the correct length for the time >> window (10 years) but when I look at the results all of them are the same >> for all the subseries which doesn't make sense. The problem has to be within >> the FUN argument though I cannot figure out what it is. Would you mind >> checking on the code to see if you can spot where is the problem? >> >> adets<-ts(adeery$DA,c(adeery$Year[1],adeery$Day[1]),frequency=365) >> >> adezoo<-as.zoo(adets) >> >> n.d<-length(adets) >> >> especlist<-rollapply(adezoo, width=3650, FUN=function(z) >> SDF(adezoo,method="lag window", >> window=taper(type="parzen",n.sample=n.d,cutoff=(2*sqrt(n.d))), >> npad=2*n.d), by = 365, align="left") >> >> >> And these are, for example, the SDF values at the last day for each 10-y >> subseries (all the same though they should be different as I have it verify >> by doing the SDF step by step using the same values for the arguments within >> the function): >> >> especlist1.7048 >> 1978(20) 1.998068e-06 >> 1979(20) 1.998068e-06 >> 1980(20) 1.998068e-06 >> 1981(20) 1.998068e-06 >> 1982(20) 1.998068e-06 >> 1983(20) 1.998068e-06 >> 1984(20) 1.998068e-06 >> 1985(20) 1.998068e-06 >> 1986(20) 1.998068e-06 >> 1987(20) 1.998068e-06 >> >> Thanks a lot. >> >> Jorge >> >> >> ________________________________________ >> From: R. Michael Weylandt [michael.weyla...@gmail.com] >> Sent: 26 January 2012 21:00 >> To: Jorge Molinos >> Cc: r-help@R-project.org >> Subject: Re: [R] Calculate a function repeatedly over sections of a ts object >> >> I'm not sure if it's easily doable with a ts class, but the rollapply >> function in the zoo package will do this easily. (Also, I find zoo to >> be a much more natural time-series workflow than ts so it might make >> the rest of your life easier as well) >> >> Michael >> >> On Thu, Jan 26, 2012 at 2:24 PM, Jorge Molinos <jgarc...@tcd.ie> wrote: >>> >>> Hi, >>> >>> I want to apply a function (in my case SDF; package “sapa”) repeatedly over >>> discrete sections of a daily time series object by sliding a time window of >>> constant length (e.g. 10 consecutive years or 1825 days) over the entire ts >>> at increments of 1 time unit (e.g. 1 year or 365 days). So for example, the >>> first SDF would be calculated for the daily values of my variable recorded >>> between years 1 to 5, SDF2 to those for years 2 to 6 and so on until the >>> total length of the series is covered. How can I implement this into a R >>> script? Any help is much appreciated. >>> >>> Jorge >>> ______________________________________________ >>> 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.