Saya telah dimuat di konsol R berbagai jenis objek. Saya dapat menghapus semuanya menggunakan
rm(list=ls())
atau hanya menghapus fungsi (tetapi bukan variabel) menggunakan
rm(list=lsf.str())
Pertanyaan saya adalah: apakah ada cara untuk menghapus semua variabel kecuali fungsi
rm(list=setdiff(ls(all.names=TRUE), lsf.str(all.names=TRUE)))
.
Untuk melihat apa yang saya bicarakan, coba.j <- 5; ls(); ls(all.names=TRUE)
setdiff
Jawaban yang diposting bagus. Saya hanya berpikir saya akan memposting fungsi terkait yang saya tulis beberapa waktu lalu. Kegunaannya terserah pembaca :-).sumber
ls.str()
yang, bagaimanapun, mengujimode
daripadatypeof
objek. (Di samping catatan, saya akan terkutuk jika saya dapat mengetahui perbedaan antara keduanya dari dokumentasi mereka).Anda dapat menggunakan perintah berikut untuk menghapus SEMUA variabel. Berhati-hatilah karena Anda tidak bisa mendapatkan variabel Anda kembali.
sumber
Inilah fungsi yang cukup nyaman yang saya ambil di suatu tempat dan sedikit disesuaikan. Sebaiknya simpan di direktori.
sumber
Saya menulis ini untuk menghapus semua objek selain fungsi dari lingkungan saat ini (Bahasa pemrograman yang digunakan adalah R dengan IDE R-Studio):
Catatan-
Argumen "list" di rm (list =) harus berupa vektor karakter.
Nama objek di posisi i dari lingkungan saat ini dikembalikan dari ls () [i] dan objek itu sendiri dari get (ls () [i]). Oleh karena itu kelas suatu objek dikembalikan dari kelas (get (ls () [i]))
sumber