J'ai chargé dans une console R différents types d'objets. Je peux tous les supprimer en utilisant
rm(list=ls())
ou supprimez uniquement les fonctions (mais pas les variables) en utilisant
rm(list=lsf.str())
Ma question est la suivante: existe-t-il un moyen de supprimer toutes les variables à l'exception des fonctions
rm(list=setdiff(ls(all.names=TRUE), lsf.str(all.names=TRUE)))
.
pour voir de quoi je parle, essayez.j <- 5; ls(); ls(all.names=TRUE)
La
setdiff
réponse publiée est agréable. Je pensais juste publier cette fonction connexe que j'ai écrite il y a quelque temps. Son utilité dépend du lecteur :-).la source
ls.str()
lequel, cependant, teste les objetsmode
plutôt que lestypeof
. (Sur une note secondaire, je serai sacrément si je peux comprendre la différence entre ces deux à partir de leur documentation).Vous pouvez utiliser la commande suivante pour effacer TOUTES les variables. Soyez prudent car vous ne pouvez pas récupérer vos variables.
la source
Voici une fonction assez pratique que j'ai choisie quelque part et ajustée un peu. Cela pourrait être bien de garder dans le répertoire.
la source
J'ai écrit ceci pour supprimer tous les objets en dehors des fonctions de l'environnement actuel (le langage de programmation utilisé est R avec IDE R-Studio):
Remarques-
L'argument "list" dans rm (list =) doit être un vecteur de caractères.
Le nom d'un objet en position i de l'environnement courant est renvoyé par ls () [i] et l'objet lui-même par get (ls () [i]). Par conséquent, la classe d'un objet est renvoyée par class (get (ls () [i]))
la source