web-dev-qa-db-fra.com

Comment effacer seulement quelques objets spécifiques de l'espace de travail?

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.

145
Ford

Vous trouverez la réponse en tapant ?rm

rm(data_1, data_2, data_3)
219
Pop

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))
64
mbask

Commande suivante fera

rm(list=ls(all=TRUE))
15
jaamit

Utilisez la commande suivante

remove(list=c("data_1", "data_2", "data_3"))
7
S. Elzwawi

Vous pouvez utiliser la fonction apropos qui permet de rechercher les objets à l'aide d'un nom partiel.

rm(list = apropos("data_"))
4
Saroj Nayak

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()
3
DanThompson
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
2
hyunwoo jeong

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.

2
MichaelChirico
  1. Dans RStudio, assurez-vous que l'onglet Environment est en mode Grid (et non List).

  2. Cochez le ou les objets que vous souhaitez supprimer de l'environnement.

  3. Cliquez sur l'icône du balai.

1
earcanal

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.

1
Abdul