Skip to content

using do.call to call a list of functions

5 messages · Richard M. Heiberger, Baptiste Auguie, honeyoak +1 more

#
I am having trouble figuring out how to use do.call to call and run a list of
functions.

for example:

make.draw = function(i){i;function()runif(i)}
function.list = list()
for (i in 1:3) function.list[[i]] = make.draw(i)

will result in
[1] 0.2996515
[1] 0.7276203 0.4704813
[1] 0.9092999 0.7307774 0.4647443

what I want to do is create a function that calls all three functions in the
list at one go. from what I understand as.call() can be used to do this but
I am having trouble connecting the dots and getting 6 uniform random draws
from function.list. thanks, honeyoak.

--
View this message in context: http://r.789695.n4.nabble.com/using-do-call-to-call-a-list-of-functions-tp3906337p3906337.html
Sent from the R help mailing list archive at Nabble.com.
#
package plyr makes it easier,

plyr::each(function.list)(pi)

HTH,

baptiste
On 15 October 2011 11:55, Richard M. Heiberger <rmh at temple.edu> wrote:
#
On Oct 14, 2011, at 8:14 PM, honeyoak wrote:

            
I doubt it. You have not looked at the `each` code. Its just a wrapper  
for a for loop and on StackOverfolw you started out saying that you  
were rejecting for() loops and sapply() solutions because you thought  
they were too slow. And you did not want to put any work into doing  
performance analysis of your 40 or so functions that you planned on  
testing .... so,  as they say these days "good luck with that".
David Winsemius, MD
West Hartford, CT