Les manuels R continuent à promouvoir l'utilisation de lapply au lieu des boucles. C'est facile même pour des fonctions avec des arguments commeUtilisation de lapplication avec des arguments de modification
lapply(somelist, f, a=1, b=2)
mais que se passe-t-il si les arguments changent en fonction de l'élément de liste? Assumer ma somelist se compose de:
somelist$USA
somelist$Europe
somelist$Switzerland
plus il y a anotherlist
avec les mêmes régions et je veux utiliser lapply avec ces arguments changeants? Cela pourrait être utile lorsque f était un calcul de ratio par exemple.
lapply(somelist, f, a= somelist$USA, b=anotherlist$USA)
Y a-t-il un moyen, à l'exception d'une boucle, de parcourir efficacement ces régions?
EDIT: mon problème semble être que j'ai essayé d'utiliser une fonction précédemment écrite sans index ...
ratio <-function(a,b){
z<-(b-a)/a
return(z)
}
qui a conduit à
lapply(data,ratio,names(data))
qui ne fonctionne pas. Peut-être que d'autres peuvent aussi apprendre de cette erreur.
+1 Je vous me bats pour voir les noms idée –
Ouais, il semblait que la moyen le plus simple pour résoudre le problème. J'ai ajouté une discussion de pour vs appliquer parce qu'il a demandé cela aussi ... – Vincent