Los libros de texto R continúan promoviendo el uso de lapply en lugar de bucles. Esto es fácil incluso para funciones con argumentos comoUso de lapply con cambio de argumentos
lapply(somelist, f, a=1, b=2)
pero ¿y si los argumentos cambian dependiendo del elemento de la lista? Supongamos mi algunalista consiste en:
somelist$USA
somelist$Europe
somelist$Switzerland
además hay anotherlist
con las mismas regiones y quiero utilizar lapply con estos argumentos cambiantes? Esto podría ser útil cuando f era un cálculo de proporción, por ejemplo.
lapply(somelist, f, a= somelist$USA, b=anotherlist$USA)
¿Hay alguna manera a excepción de un bucle para ejecutar estas regiones de manera eficiente?
EDIT: mi problema parece ser que he tratado de utilizar una función previamente escrito sin índices ...
ratio <-function(a,b){
z<-(b-a)/a
return(z)
}
que llevó a
lapply(data,ratio,names(data))
que no funciona. Quizás otros también puedan aprender de este error.
+1 veo que se me adelantó a la idea nombres –
Sí, parecía que la forma más directa de solucionar el problema. Agregué un poco de discusión de para vs aplicar porque él también lo pidió ... – Vincent