Utilizando lapply con argumentos cambiantes
os libros de texto @R continúan promoviendo el uso de lapply en lugar de bucles. Esto es fácil incluso para funciones con argumentos como
lapply(somelist, f, a=1, b=2)
pero ¿qué pasa si los argumentos cambian según el elemento de la lista? Supongamos que mi somelist consiste en:
somelist$USA
somelist$Europe
somelist$Switzerland
plus hayanotherlist
con las mismas regiones y quiero usar lapply con estos argumentos cambiantes? Esto podría ser útil cuando f era un cálculo de razón, por ejemplo.
lapply(somelist, f, a= somelist$USA, b=anotherlist$USA)
¿Hay alguna forma, excepto un bucle para ejecutar estas regiones de manera eficiente?
EDIT: mi problema parece ser que intenté usar una función previamente escrita sin índices ...
ratio <-function(a,b){
z<-(b-a)/a
return(z)
}
lo que llevó
lapply(data,ratio,names(data))
que no funciona. Quizás otros también puedan aprender de este error.