vacio tipos tablas recodificar listas leer eliminar datos data crear r

tipos - tablas en r



¿Cómo verificar si el objeto(variable) está definido en R? (5)

Como otros han señalado, lo que buscas exists . Tenga en cuenta que el uso de exists con los nombres utilizados por los paquetes base de R devolverá verdadero independientemente de si definió la variable:

> exists("data") [1] TRUE

Para solucionar esto (como lo señala Bazz; see ?exists ), use el argumento inherits :

> exists("data", inherits = FALSE) [1] FALSE foo <- TRUE > exists("foo", inherits = FALSE) [1] TRUE

Por supuesto, si desea buscar los espacios de nombre de los paquetes adjuntos, esto también se quedaría corto:

> exists("data.table") [1] FALSE require(data.table) > exists("data.table", inherits = FALSE) [1] FALSE > exists("data.table") [1] TRUE

Lo único que se me ocurre para solucionar esto, para buscar en paquetes adjuntos pero no en paquetes base, es lo siguiente:

any(sapply(1:(which(search() == "tools:rstudio") - 1L), function(pp) exists(_object_name_, where = pp, inherits = FALSE)))

Compare la sustitución de _object_name_ con "data.table" ( TRUE ) frente a "var" ( FALSE )

(por supuesto, si no estás en RStudio, creo que el primer entorno adjunto automáticamente es "package:stats" )

Me gustaría comprobar si alguna variable está definida en R - sin recibir un error. ¿Cómo puedo hacer esto?

Mis intentos (no exitoso):

> is.na(ooxx) Error: object ''ooxx'' not found > is.finite(ooxx) Error: object ''ooxx'' not found

¡Gracias!


Quieres que exists() :

R> exists("somethingUnknown") [1] FALSE R> somethingUnknown <- 42 R> exists("somethingUnknown") [1] TRUE R>


Si estás dentro de una función, falta () es lo que quieres.

exchequer = function(x) { if(missing(x)){ message("x is missing… :-(") } } exchequer() x is missing… :-(


Si no quiere usar comillas, puede usar el truco de deparse (suplente ()) que encontré en la sección de ejemplo de? Sustituto:

is.defined <- function(sym) { sym <- deparse(substitute(sym)) env <- parent.frame() exists(sym, env) } is.defined(a) # FALSE a <- 10 is.defined(a) # TRUE


Ver ?exists , para alguna definición de "... está definido". P.ej

> exists("foo") [1] FALSE > foo <- 1:10 > exists("foo") [1] TRUE