J'aimerais supprimer des données de l'espace de travail. Je sais que le bouton "Effacer tout" supprimera toutes les données. Cependant, je voudrais supprimer uniquement certaines données.
Par exemple, j'ai ces trames de données dans la section données:
data
data_1
data_2
data_3
Je voudrais supprimer data_1
, data_2
et data_3
, tout en conservant data
.
J'ai essayé data_1 <- data_2 <- data_3 <- NULL
, qui supprime les données (je pense), mais les conserve tout de même dans l'espace de travail, de sorte que ce n'est pas tout à fait ce que j'aimerais faire.
Vous trouverez la réponse en tapant ?rm
rm(data_1, data_2, data_3)
Un moyen utile de supprimer tout un ensemble d'objets de même nom:
rm(list = ls()[grep("^tmp", ls())])
supprimant ainsi tous les objets dont le nom commence par la chaîne "tmp".
Suivant le commentaire de Gsee, utilisez l’argument pattern
:
rm(list = ls(pattern = "^tmp"))
Édition: En répondant à Rafael, une façon de ne conserver qu’un sous-ensemble d’objets est de nommer les données que vous voulez conserver avec un modèle spécifique. Par exemple, si vous souhaitez supprimer tous les objets dont le nom ne commence pas par paper
, vous devez exécuter la commande suivante:
rm(list = grep("^paper", ls(), value = TRUE, invert = TRUE))
Commande suivante fera
rm(list=ls(all=TRUE))
Utilisez la commande suivante
remove(list=c("data_1", "data_2", "data_3"))
Vous pouvez utiliser la fonction apropos
qui permet de rechercher les objets à l'aide d'un nom partiel.
rm(list = apropos("data_"))
Si vous souhaitez simplement supprimer l'une des variables d'un groupe, vous pouvez créer une liste et ne conserver que la variable dont vous avez besoin. La fonction rm peut être utilisée pour supprimer toutes les variables sauf "data". Voici le script:
0->data
1->data_1
2->data_2
3->data_3
#check variables in workspace
ls()
rm(list=setdiff(ls(), "data"))
#check remaining variables in workspace after deletion
ls()
#note: if you just use rm(list) then R will attempt to remove the "list" variable.
list=setdiff(ls(), "data")
rm(list)
ls()
paste0("data_",seq(1,3,1))
# makes multiple data.frame names with sequential number
rm(list=paste0("data_",seq(1,3,1))
# above code removes data_1~data_3
Si vous utilisez RStudio, envisagez de ne jamais utiliser l'approche rm(list = ls())
! * . Vous devez plutôt créer votre flux de travail autour du Ctrl
+ Shift
+ F10
raccourci pour redémarrer votre session R. C’est le moyen le plus rapide de combiner le jeu actuel de variables définies par l’utilisateur ET d’effacer les paquets, périphériques, etc. chargés. La reproductibilité de votre travail augmentera considérablement si vous adoptez cette habitude.
Voir cet excellent fil sur la communauté Rstudio pour (h/t @kierisi) pour une discussion plus approfondie (le Gist principal est capturé par ce que j'ai déjà dit).
Je dois admettre que mes premières années de script R, codage après script, ont débuté par le "truc" rm
- j'écris cette réponse à titre de conseil à quiconque est susceptible de commencer sa carrière avec R.
* Bien sûr, il existe des utilisations légitimes pour cela - un peu comme attach
- mais les utilisateurs débutants seront beaucoup mieux servis (IMO) en traversant ce pont à une date ultérieure.
Dans RStudio, assurez-vous que l'onglet Environment
est en mode Grid
(et non List
).
Cochez le ou les objets que vous souhaitez supprimer de l'environnement.
Cliquez sur l'icône du balai.
Pour effacer toutes les données:
cliquez sur Misc>Remove all objects
.
Votre bon aller.
Pour effacer la console:
cliquez sur edit>Clear console
.
Pas besoin de code.