He cargado en una consola R diferentes tipos de objetos. Puedo eliminarlos todos usando
rm(list=ls())
o eliminar solo las funciones (pero no las variables) usando
rm(list=lsf.str())
Mi pregunta es: ¿hay alguna manera de eliminar todas las variables excepto las funciones?
rm(list=setdiff(ls(all.names=TRUE), lsf.str(all.names=TRUE)))
.
Para ver de qué estoy hablando, intente.j <- 5; ls(); ls(all.names=TRUE)
La
setdiff
respuesta publicada es buena. Pensé en publicar esta función relacionada que escribí hace un tiempo. Su utilidad depende del lector :-).fuente
ls.str()
que, sin embargo, pone a prueba lamode
vez de latypeof
de los objetos. (En una nota al margen, estaré maldito si puedo calcular la diferencia entre esos dos a partir de su documentación).Puede usar el siguiente comando para borrar TODAS las variables. Tenga cuidado porque no puede recuperar sus variables.
fuente
Aquí hay una función bastante conveniente que recogí en algún lugar y ajusté un poco. Sería bueno mantenerlo en el directorio.
fuente
Escribí esto para eliminar todos los objetos además de las funciones del entorno actual (el lenguaje de programación utilizado es R con IDE R-Studio):
Notas
El argumento "lista" en rm (lista =) debe ser un vector de caracteres.
El nombre de un objeto en la posición i del entorno actual se devuelve de ls () [i] y el objeto en sí mismo de get (ls () [i]). Por lo tanto, la clase de un objeto se devuelve desde class (get (ls () [i]))
fuente