2012-08-01 9 views
110

Ich verwende RStudio und möchte einige Daten aus dem Arbeitsbereich entfernen. Ich weiß, dass der "Alle löschen" Knopf alle Daten entfernt. Ich möchte jedoch nur bestimmte Daten entfernen.Objekte/Daten aus dem Arbeitsbereich entfernen

Zum Beispiel habe ich diesen Datenrahmen im Datenteil:

data 
data_1 
data_2 
data_3 

Ich mag würde „data_1“, „data_2“ und „DATA_3“ beim Halten „Daten“ entfernen. Dies geschieht, weil ich data_1, data_2 und data_3 eingelesen habe und sie dann zu "data" zusammenfasse. Jede dieser Dateien sind große Dateien, daher möchte ich sie entfernen, um Speicherplatz freizugeben.

Ich versuchte auch data_1 <- data_2 <- data_3 <- NULL, die die Daten entfernt, denke ich, aber immer noch es im Arbeitsbereich bleibt, so ist es nicht vollständig, was ich tun möchte.

Ich denke, es muss eine einfache Antwort auf diese Frage geben, aber ich konnte es nicht finden.

Antwort

160

Sie die Antwort, indem Sie ?rm

rm(data_1, data_2, data_3) 
+32

Zum Löschen aller Variablen können Sie 'rm (list = ls())' verwenden. – larkee

+0

aber wie kann man mit der GUI, ohne die Befehlszeile? Wie in Revolution R – skan

+0

Was, wenn ich alle Variablen mit Namen entfernen möchte, beginnen mit dem Buchstaben A, sagen 'A001', 'A002' .... 'A999'. Ich möchte nicht so viele Variablennamen eingeben. Vielen Dank! – user3768495

51

Eine nützliche Art und Weise eine ganze Reihe von Namen Doppelgänger Objekte entfernen finden:

rm(list = ls()[grep("^tmp", ls())]) 

dadurch Entfernen aller Objekte, deren Name mit dem beginnt Zeichenfolge "tmp".

Edit: Nach GSEE Kommentar, die Nutzung der pattern Argument:

rm(list = ls(pattern = "^tmp")) 

Edit: Answering Rafael Kommentar, eine Möglichkeit, nur eine Teilmenge von Objekten zu behalten ist es, die Daten, die Sie mit einem behalten möchten zu nennen spezifisches Muster. Zum Beispiel wollen, wenn Sie alle Objekte, deren Namen nicht anfangen, mit paper entfernen Sie den folgenden Befehl eingeben:

rm(list = grep("^paper", ls(), value = TRUE, invert = TRUE)) 
+5

'ls' akzeptiert ein 'pattern'-Argument, damit Sie das zu' vereinfachen können rm (list = ls (pattern = "^ tmp")) ' – GSee

+1

Überprüfen Sie separat, was passiert, wenn Sie' value = TRUE' mit 'grep' verwenden ... könnte etwas Tipparbeit sparen. – GSee

+0

Hallo, gibt es eine Möglichkeit, ein paar Daten zu behalten und die anderen zu entfernen (eine größere Menge)? Prost – Rafael

2

alle Daten zu löschen:

Klick auf Misc>Remove all objects.

Ihr Gut zu gehen.

die Konsole löschen:

Klick auf edit>Clear console.

Keine Notwendigkeit für einen Code.

+0

Obwohl ich 'Session> Clear Workspace machen musste ...'. –

+0

'Ihre' gut zu gehen .... Wie schwer kann es sein – Dan

14

folgende Befehl tun

rm(list=ls(all=TRUE)) 
+2

Dies wird alles aus dem Arbeitsbereich entfernen, nicht nur 'data1',' data2' und 'data3' (d. H.' Data' wird auch entfernt). Was ist in Ordnung, wenn das ist, was Sie wollen ... – Phil

+1

Und was, wenn man nur Daten, nicht Funktionen, Werte oder andere Objekte in, sagen wir, die globale Umgebung entfernen will? –

4

benutzen Sie einfach den folgenden Befehl

remove(list=c("data_1", "data_2", "data_3")) 
2
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

Wenn Sie nur eine von einer Gruppe von Variablen entfernen möchten, dann können Sie eine Liste erstellen und Behalte nur die Variable, die du brauchst. Die Funktion rm kann verwendet werden, um alle Variablen außer "Daten" zu entfernen.Hier ist das Skript:

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() 
1

können Sie verwenden, um die apropos Funktion, die verwendet wird, um die Objekte mit Teilnamen zu finden.

rm(list = apropos("data_")) 
+0

Willkommen bei Stack Overflow! :) Ich habe gerade Ihren Beitrag mit einigen kleineren Formatierungsänderungen bearbeitet, damit die Code-Hervorhebung funktioniert. Weitere Informationen dazu, wie die Formatierung funktioniert, finden Sie unter https://stackoverflow.com/editing-help. – CullenJ

1

Wenn Sie RStudio verwenden, beachten Sie bitte nie den rm(list = ls()) Ansatz! * Stattdessen Sie Ihren Workflow um den Einsatz häufig die Ihre R Sitzung Ctrl + Shift + F10 Verknüpfung starten bauen sollte. Dies ist der schnellste Weg, um sowohl die aktuellen benutzerdefinierten Variablen als auch die geladenen Pakete, Geräte usw. zu vernichten. Die Reproduzierbarkeit Ihrer Arbeit wird durch diese Gewohnheit deutlich erhöht.

Siehe this excellent thread auf Rstudio Gemeinschaft für (h/t @kierisi) für eine gründlichere Diskussion (der Hauptgedanke wird von dem erfasst, was ich bereits erwähnt habe).

Ich muss zugeben, meine eigenen ersten Jahren der R Codierung vorgestellten Skript nach dem Skript beginnend mit der rm "Trick" - Ich schreibe diese Antwort als Rat an alle anderen, die ihre R Karrieren beginnen können.

* natürlich gibt es legitime Verwendungen dafür - ähnlich wie attach - aber Anfänger werden viel besser bedient (IMO) die Brücke zu einem späteren Zeitpunkt überqueren.

Verwandte Themen