es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Condición para la existencia del objeto en la función definida por el usuario, no en el entorno global en R.

Estoy construyendo una función definida por el usuario en R.

Quiero hacer una declaración de condición con la existencia de un objeto.

Si el objeto “variable” está definido en la función, entonces imprimir “TRUE”, de lo contrario, imprimir “FALSE”.

En este caso, se recomienda utilizar la función “exists”. Si la variable no fue definida previamente, la función imprimirá “FALSE”.

Sin embargo, si el objeto no está definido dentro de la función, la función “exists” buscará automáticamente en el entorno global. Si definí el objeto en el entorno global previamente, la función “exists” siempre imprimirá “TRUE”.

Quiero hacer la condición dependiendo solo del entorno en la función, no del entorno global.

Agradecería mucho su ayuda.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para solucionar este problema, puedes utilizar la función exists con el argumento inherits establecido en FALSE. Esto limitará la búsqueda de la variable al entorno actual y no incluirá el entorno global.

    Aquí hay un ejemplo de función que implementa esta lógica:

    my_function <- function() {
    
      if (exists("variable", inherits = FALSE)) {
        print(TRUE)
      } else {
        print(FALSE)
      }
    
    }
    

    Ahora, si variable está definida dentro de esta función, la condición se evaluará como verdadera. Si no está definida, la condición se evaluará como falsa, sin buscar en el entorno global.

Comments are closed.