Bunny, lautloscrew.com
2010-Jun-01 20:50 UTC
[R] lapply with functions with changing parameters
Dear all, I am trying to avoid a for loop here and wonder if the following is possible: I have a data.frame with 6 columns and i want to get a cross-correlogram (by using ccf) . Obivously ccf only accepts two columns at once and then returms a list. In fact, with a for loop i?d do the following for (i in 1:6) { x[[i]]=ccf(mydf[,i],mydf[,6]) } Is there any chance to the same with lapply? e.g. lapply(mydf,"ccf", .... ) with ... respresenting the changing arguments for ccf functions (note only the first argument does actually change) thx for any suggestions in advance best matt
Bunny, lautloscrew.com wrote:> Dear all, > > I am trying to avoid a for loop here and wonder if the following is > possible: > > I have a data.frame with 6 columns and i want to get a > cross-correlogram (by using ccf) . Obivously ccf only accepts two > columns at once and then returms a list. In fact, with a for loop i?d > do the following > > > for (i in 1:6) { > > x[[i]]=ccf(mydf[,i],mydf[,6]) > > > } > > Is there any chance to the same with lapply? e.g. lapply(mydf,"ccf", > .... ) with ... respresenting the changing arguments for ccf > functions (note only the first argument does actually change)You don't give a reproducible example, but since you want to apply a function to a list, the answer is yes. Just defining the function and the list is the trick, untested: lapply(mydf[, 1:5], function(x) ccf(x, mydf[, 6]))
Henrique Dallazuanna
2010-Jun-01 21:01 UTC
[R] lapply with functions with changing parameters
Try this: lapply(mydf[-6], ccf, y = mydf[6]) On Tue, Jun 1, 2010 at 5:50 PM, Bunny, lautloscrew.com < bunny@lautloscrew.com> wrote:> Dear all, > > I am trying to avoid a for loop here and wonder if the following is > possible: > > I have a data.frame with 6 columns and i want to get a cross-correlogram > (by using ccf) . Obivously ccf only accepts two columns at once and then > returms a list. > In fact, with a for loop i´d do the following > > > for (i in 1:6) { > > x[[i]]=ccf(mydf[,i],mydf[,6]) > > > } > > Is there any chance to the same with lapply? e.g. lapply(mydf,"ccf", .... ) > with ... respresenting the changing arguments for ccf functions (note only > the first argument does actually change) > > thx for any suggestions in advance > > best > > matt > ______________________________________________ > 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. >-- Henrique Dallazuanna Curitiba-Paraná-Brasil 25° 25' 40" S 49° 16' 22" O [[alternative HTML version deleted]]