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.