valores vacias tablas studio observaciones filas eliminar elementos elegir editar data con columnas r

vacias - ¿Cómo puedo eliminar todos los objetos excepto uno del área de trabajo en R?



eliminar filas en r studio (13)

¿Qué tal esto?

# Removes all objects except the specified & the function itself. rme <- function(except=NULL){ except = ifelse(is.character(except), except, deparse(substitute(except))) rm(list=setdiff(ls(envir=.GlobalEnv), c(except,"rme")), envir=.GlobalEnv) }

Tengo un espacio de trabajo con muchos objetos y me gustaría eliminar todos menos uno. Idealmente, me gustaría evitar tener que escribir rm(obj.1, obj.2... obj.n) . ¿Es posible indicar remove all objects but these ones ?


Acabo de pasar varias horas buscando la respuesta a una pregunta similar pero ligeramente diferente: necesitaba poder eliminar todos los objetos en R (incluidas las funciones) excepto un puñado de vectores.

Una forma de hacer esto:

rm(list=ls()[! ls() %in% c("a","c")])

Donde los vectores que quiero mantener se llaman ''a'' y ''c''.

Espero que esto ayude a cualquiera que busque la misma solución.


Aquí hay una construcción simple que lo hará, usando setdiff :

rm(list=setdiff(ls(), "x"))

Y un completo ejemplo. Ejecuta esto bajo tu propio riesgo: eliminará todas las variables excepto x :

x <- 1 y <- 2 z <- 3 ls() [1] "x" "y" "z" rm(list=setdiff(ls(), "x")) ls() [1] "x"


Creo que otra opción es abrir el espacio de trabajo en RStudio y luego cambiar la lista a la cuadrícula en la parte superior derecha del entorno (imagen a continuación). Luego marque los objetos que desea borrar y finalmente haga clic en borrar.


Desde dentro de una función, rm todos los objetos en .GlobalEnv excepto la función

initialize <- function(country.name) { if (length(setdiff(ls(pos = .GlobalEnv), "initialize")) > 0) { rm(list=setdiff(ls(pos = .GlobalEnv), "initialize"), pos = .GlobalEnv) } }


Esto aprovecha la opción de pattern de ls() , en el caso de que tenga muchos objetos con el mismo patrón que no desea conservar:

> foo1 <- "junk"; foo2 <- "rubbish"; foo3 <- "trash"; x <- "gold" > ls() [1] "foo1" "foo2" "foo3" "x" > # Let''s check first what we want to remove > ls(pattern = "foo") [1] "foo1" "foo2" "foo3" > rm(list = ls(pattern = "foo")) > ls() [1] "x"


Lo siguiente eliminará todos los objetos de su consola

rm(list = ls())


Para mantener todos los objetos cuyos nombres coinciden con un patrón, puede usar grep , de esta manera:

to.remove <- ls() to.remove <- c(to.remove[!grepl("^obj", to.remove)], "to.remove") rm(list=to.remove)



Usar la función keep del paquete gdata es bastante conveniente.

> ls() [1] "a" "b" "c" library(gdata) > keep(a) #shows you which variables will be removed [1] "b" "c" > keep(a, sure = TRUE) # setting sure to TRUE removes variables b and c > ls() [1] "a"


pensemos de otra manera, ¿y si queremos eliminar un grupo? prueba esto,

rm(list=ls()[grep("xxx",ls())])

Personalmente, no me gustan muchas tablas, variables en mi pantalla, pero no puedo evitar usarlas. Así que nombro las cosas temporales que comienzan con "xxx", por lo que puedo eliminarlas cuando ya no se usen.


suponiendo que desea eliminar todos los objetos excepto df del entorno:

rm(list = ls(pattern="[^df]"))


require(gdata) keep(object_1,...,object_n,sure=TRUE) ls()