Çalışma alanından yalnızca birkaç belirli nesneyi nasıl temizleyebilirim?


161

Bazı verileri çalışma alanından kaldırmak istiyorum. "Tümünü Temizle" düğmesinin tüm verileri kaldıracağını biliyorum. Ancak, sadece belirli verileri kaldırmak istiyorum.

Örneğin, veri bölümünde şu veri çerçeveleri var:

data
data_1
data_2
data_3

Ben kaldırmak istiyorum data_1, data_2ve data_3tutarken, data.

Denedim data_1 <- data_2 <- data_3 <- NULL, hangi veri (sanırım) kaldırmak, ama yine de çalışma alanı alanında tutar, bu yüzden tam olarak ne yapmak istiyorum değil.

Yanıtlar:


247

Cevabı yazarak bulacaksınız ?rm

rm(data_1, data_2, data_3)

44
Tüm değişkenleri silmek için kullanabilirsiniz rm(list=ls()).
larkee

1
ama komut satırı olmadan GUI ile nasıl yapabilirsiniz? Revolution R
skan

1
A harfi ile başlayan isimleri olan tüm değişkenleri kaldırmak istersem, 'A001', 'A002' .... 'A999' deyin. Çok fazla değişken ismi yazmak istemiyorum. Teşekkürler!
user3768495

2
Kullanım @ mbask cevabı (hemen altında): rm(list = ls()[grep("A", ls())])
Pop

74

Bir dizi adlandırılmış benzer nesneyi kaldırmanın yararlı bir yolu:

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

böylece adı "tmp" dizesiyle başlayan tüm nesneleri kaldırır.

Düzenle: Gsee'nin yorumunu takiben patternargümanı kullanarak:

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

Düzenleme: Rafael yorumunu yanıtlarken, yalnızca nesnelerin bir alt kümesini tutmanın bir yolu, belirli bir desenle korumak istediğiniz verileri adlandırmaktır. Örneğin, adı ile başlamayan tüm nesneleri kaldırmak paperisterseniz, aşağıdaki komutu verirsiniz:

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

7
lsbir patternargümanı kabul rm(list=ls(pattern="^tmp"))
ettiğinden

1
Ayrı, kullanmak ne olur kontrol value=TRUEile grepbazı yazarak kurtarabilecek ....
GSee

Merhaba, birkaç veri tutmanın ve diğerlerini kaldırmanın (daha büyük bir miktar) bir yolu var mı? Şerefe
Rafael

1
Selam! Ve R ortamımda iki farklı modeli nasıl koruyabilirim? "Rm (list = grep (" ^ paper "|" ObjectExample ", ls (), değer = DOĞRU, ters çevir = DOĞRU))" denedim. Kimse biliyor mu?
Dekike

1
Normal ifadenizi şu patternargümana dahil etmelisiniz grep:rm(list = grep("^paper|ObjectExample", ls(), value = TRUE, invert = TRUE))
mbask

15

Aşağıdaki komut yapılacak

rm(list=ls(all=TRUE))

2
Bu sadece, çalışma alanından her şeyi kaldırır data1, data2ve data3(yani datasilinecektir çok). Hangisi istersen iyi olur ...
Phil

2
Peki ya küresel ortamda işlevler, değerler veya diğer nesneleri değil, sadece verileri kaldırmak isterse?
Nikos Alexandris

8

Aşağıdaki komutu kullanın

remove(list=c("data_1", "data_2", "data_3"))

6

aproposKısmi ad kullanarak nesneleri bulmak için kullanılan işlevi kullanabilirsiniz .

rm(list = apropos("data_"))

3

Sadece bir değişken grubundan birini kaldırmak istiyorsanız, bir liste oluşturabilir ve sadece ihtiyacınız olan değişkeni tutabilirsiniz. Rm işlevi, "data" dışında tüm değişkenleri kaldırmak için kullanılabilir. İşte senaryo:

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

RStudio kullanıyorsanız, lütfen asla rm(list = ls())yaklaşımı kullanmayı düşünmeyin ! * Bunun yerine, iş akışınızı R oturumunuzu yeniden başlatmak için sık sık Ctrl+ Shift+ F10kısayolunu kullanarak oluşturmalısınız . Bu, hem mevcut kullanıcı tanımlı değişken kümesini tıklatmanın hem de yüklü paketleri, aygıtları vb. Temizlemenin en hızlı yoludur. Bu alışkanlığı benimseyerek çalışmanızın tekrarlanabilirliği önemli ölçüde artacaktır.

Daha kapsamlı bir tartışma için (h / t @kierisi) için Rstudio topluluğundaki bu mükemmel konuya bakın (ana özgeçmiş, daha önce belirttiğim şeyle yakalandı).

Ben rm"hile" ile başlayan komuttan sonra kendi R kodlama özellikli komut benim ilk birkaç yıl itiraf etmeliyim - Ben bu cevap R kariyer başlıyor olabilir herkese tavsiye olarak yazıyorum.

* Tabii ki bunun için meşru kullanımlar var - çok benzer attach- ancak başlangıçtaki kullanıcılara daha sonraki bir tarihte o köprüyü geçmek için daha iyi hizmet verilecek (IMO).


3
  1. RStudio'da, Environmentsekmenin Grid(değil List) modunda olduğundan emin olun .

  2. Ortamdan kaldırmak istediğiniz nesneleri işaretleyin.

  3. Süpürge simgesini tıklayın.


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

1

Tüm verileri silmek için:

tıklayın Misc>Remove all objects.

Gitmek için iyi.

Konsolu temizlemek için:

tıklayın edit>Clear console.

Herhangi bir koda gerek yok.


1
Yapmam gerekiyordu Session> Clear Workspace....
Peter
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.