Je n'arrive pas à trouver comment utiliser do.call
pour appeler et exécuter une liste de fonctions.Utilisation de do.call pour appeler une liste de fonctions
par exemple:
make.draw = function(i){i;function()runif(i)}
function.list = list()
for (i in 1:3) function.list[[i]] = make.draw(i)
déboucheront sur
> function.list[[1]]()
[1] 0.2996515
> function.list[[2]]()
[1] 0.7276203 0.4704813
> function.list[[3]]()
[1] 0.9092999 0.7307774 0.4647443
ce que je veux faire est de créer une fonction qui appelle les trois fonctions de la liste d'un seul coup. à partir de ce que je comprends as.call()
peut être utilisé pour le faire, mais j'ai du mal à relier les points et obtenir 6 tirages aléatoires uniformes de function.list
.
Je suppose que votre utilisation réelle pour ce qui exclut tout simplement faire 'runif (6)'? – joran
Oui, je suis en train de faire une très longue liste de fonctions personnalisées en utilisant une procédure d'usine comme ci-dessus. Je trouve runif utile pour l'exemple parce que la sortie et l'entrée sont facilement observables. – honeyoak