varias superponer studio modificar lineas graficos graficas ejes r function variables variable-assignment isset

studio - superponer graficas en r



Pruebe si un argumento de una función está establecido o no en R (3)

Tengo una función f que toma dos parámetros ( p1 y p2 ):

Si para el parámetro p2 no se pasó ningún valor a la función, se debe usar el valor de p1 ^ 2 en su lugar. Pero cómo puedo averiguar dentro de la función, si se da un valor o no. El problema es que la variable p2 no se inicializa si no hay valor. Por lo tanto, no puedo probar que p2 sea NULL .

f <- function(p1, p2) { if(is.null(p2)) { p2=p1^2 } p1-p2 }

¿Es de alguna manera posible verificar si un valor para p2 fue pasado a la función o no? (No pude encontrar un isset() - función o cosas similares.)


Creo que "extrañar" debería hacerlo.



Utiliza la función missing() para eso.

f <- function(p1, p2) { if(missing(p2)) { p2=p1^2 } p1-p2 }

Alternativamente, puede establecer el valor de p2 en NULL de forma predeterminada. A veces prefiero esa solución, ya que permite pasar argumentos a funciones anidadas.

f <- function(p1, p2=NULL) { if(is.null(p2)) { p2=p1^2 } p1-p2 } f.wrapper <-function(p1,p2=NULL){ p1 <- 2*p1 f(p1,p2) } > f.wrapper(1) [1] -2 > f.wrapper(1,3) [1] -1

EDITAR: también puedes hacer esto técnicamente con missing() , pero también deberías incluir una instrucción missing() en f.wrapper .