Cómo para que coincida con funciones en r

Al utilizar funciones como argumentos en R, es a veces necesario para que coincida con funciones. Esto también significa que si usted tiene un objeto con el mismo nombre que la función que desea utilizar, toda esta construcción no va a funcionar. Supongamos que tenemos la idea no tan inteligente de crear un vector con la ganancia relativa de un par de rondas de póquer como esto:

> Ronda lt; - c (0.48, -0.52,1.88)

Si se trató de llamar addPercent () con el DIVERTIDO argumentación en este vector, se obtendría el siguiente error:

> AddPercent (redonda, FUN = redondo) Error en addPercent (redonda, FUN = vuelta): no pudo encontrar la función "diversión"

En lugar de pasar el código de la redondo función, R pasa el vector redondo como la DIVERTIDO argumento. Para evitar este tipo de problemas, puede utilizar una función especial, match.fun (), en el cuerpo de addPercent (), Me gusta esto:

addPercent lt; - la función (x, mult = 100, diversión, ...) {DIVERSIÓN lt; - match.fun (FUN) por ciento lt; - FUN (x * mult ...) pasta (por ciento "%", septiembre = "")}

Esta función buscará una función que coincide con el nombre redondo y copiar ese código en el DIVERTIDO argumento en lugar del vector redondo. Como bono adicional, match.fun () También le permite utilizar un objeto de carácter como el argumento, por lo que especifica FUN = 'round' ahora trabaja también.

Todas las funciones nativas R utilizan match.fun () para este fin, y se recomienda para que usted haga lo mismo si se escribe código que será utilizada por otras personas. Pero que pasa funciones funciona bien sin utilizar match.fun () así, siempre y cuando utilice nombres sensibles para los otros objetos en el espacio de trabajo.




» » » » Cómo para que coincida con funciones en r