Jawaban:
Berikut ini adalah konstruksi sederhana yang akan melakukannya, dengan menggunakan setdiff:
rm(list=setdiff(ls(), "x"))
Dan contoh lengkap. Jalankan ini dengan risiko Anda sendiri - itu akan menghapus semua variabel kecuali x:
x <- 1
y <- 2
z <- 3
ls()
[1] "x" "y" "z"
rm(list=setdiff(ls(), "x"))
ls()
[1] "x"
Menggunakan keepfungsi dari gdatapaket ini cukup nyaman.
> ls()
[1] "a" "b" "c"
library(gdata)
> keep(a) #shows you which variables will be removed
[1] "b" "c"
> keep(a, sure = TRUE) # setting sure to TRUE removes variables b and c
> ls()
[1] "a"
Saya pikir pilihan lain adalah membuka ruang kerja di RStudio dan kemudian mengubah daftar menjadi kisi di kanan atas lingkungan (gambar di bawah). Kemudian centang objek yang ingin Anda hapus dan akhirnya klik hapus.

Saya hanya menghabiskan beberapa jam mencari jawaban untuk pertanyaan yang serupa tetapi sedikit berbeda - saya harus dapat menghapus semua objek dalam R (termasuk fungsi) kecuali beberapa vektor.
Salah satu cara untuk melakukan ini:
rm(list=ls()[! ls() %in% c("a","c")])
Di mana vektor yang ingin saya simpan dinamai 'a' dan 'c'.
Semoga ini bisa membantu siapa pun yang mencari solusi yang sama!
rm(list=setdiff(ls(), c("a", "c"))), kan? Lihat jawaban @ Andrie.
Untuk menjaga semua objek yang namanya cocok dengan pola, Anda dapat menggunakan grep, seperti:
to.remove <- ls()
to.remove <- c(to.remove[!grepl("^obj", to.remove)], "to.remove")
rm(list=to.remove)
Ganti vdengan nama objek yang ingin Anda pertahankan
rm(list=(ls()[ls()!="v"]))
hat-tip: http://r.789695.n4.nabble.com/Removing-objects-and-clearing-memory-tp3445763p3445865.html
Ini mengambil keuntungan dari ls()'s patternpilihan, dalam kasus ini Anda memiliki banyak objek dengan pola yang sama bahwa Anda tidak ingin menyimpan:
> foo1 <- "junk"; foo2 <- "rubbish"; foo3 <- "trash"; x <- "gold"
> ls()
[1] "foo1" "foo2" "foo3" "x"
> # Let's check first what we want to remove
> ls(pattern = "foo")
[1] "foo1" "foo2" "foo3"
> rm(list = ls(pattern = "foo"))
> ls()
[1] "x"
rmfungsinya harus selalu digunakan dengan hati-hati (lebih-lebih di shell!). Lihat hasil edit saya untuk jawaban atas pertanyaan Anda.
require(gdata)
keep(object_1,...,object_n,sure=TRUE)
ls()
mari berfikir dengan cara yang berbeda, bagaimana jika kita ingin menghapus grup? coba ini,
rm(list=ls()[grep("xxx",ls())])
Saya pribadi tidak suka tabel terlalu banyak, variabel di layar saya, namun saya tidak bisa menghindari menggunakannya. Jadi saya beri nama hal-hal sementara yang dimulai dengan "xxx", jadi saya dapat menghapusnya setelah tidak digunakan lagi.
Dari dalam suatu fungsi, rm semua objek di .GlobalEnv kecuali fungsi
initialize <- function(country.name) {
if (length(setdiff(ls(pos = .GlobalEnv), "initialize")) > 0) {
rm(list=setdiff(ls(pos = .GlobalEnv), "initialize"), pos = .GlobalEnv)
}
}
Berikut ini akan menghapus semua objek dari konsol Anda
rm(list = ls())