Parámetros adicionales a función llamada con sapply

Tenemos una función a la que queremos llamar para cada uno de los objetos de una lista. Para hacerlo de forma eficiente lo queremos hacer con sApply(), y no haciendo un for() o un while(). La función a la que queremos llamar, además del propio objeto sobre el que se hace la llamada, tiene un segundo parámetro que tenemos que pasar.

Esta es la función en cuestión:

De los dos parámetros, el primero se lo pasará la función sApply, y será uno de los elementos de la lista de sApply. Pero el segundo parámetro, cómo se lo pasamos?

La función sApply (o simplemente apply, o sus derivadas), tiene el parámetro ‘…’, por lo que acepta en su llamada cualquier parámetro adicional no especificado en la lista formal de parámetros. Todos estos parámetros adicionales que pasemos, apply los pasará directamente a la función llamada. Por lo que, podemos hacer la llamada a sApply añadiendo el parámetro idDisease de la forma:

SApply() pasará este valor como parámetro idDisease de la función ancestorsFunction().

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *