Ketika saya keluar dari shell R interaktif, ini akan menampilkan prompt yang mengganggu setiap saat:
> > Simpan gambar ruang kerja? [y / t / c]: n
Saya selalu menjawab "tidak" untuk itu, karena jika saya ingin menyelamatkan pekerjaan saya, saya akan melakukannya sebelum mencoba keluar.
Bagaimana cara menghilangkan prompt?
Catatan: lihat ?save.image
r
read-eval-print-loop
ulidtko
sumber
sumber
R --vanilla
q()
fungsi kustom di .Rprofie: stackoverflow.com/a/13043239/180892Jawaban:
Anda bisa meneruskan
--no-save
argumen baris perintah saat Anda memulai R, atau Anda bisa menggantiq
fungsi:utils::assignInNamespace( "q", function(save = "no", status = 0, runLast = TRUE) { .Internal(quit(save, status, runLast)) }, "base" )
Letakkan kode di atas di profil .R Anda sehingga akan dijalankan saat startup untuk setiap sesi.
sumber
Belum menemukan solusi Linux termudah :)
Di ubuntu tambahkan baris berikut ke Anda
~/.bashrc
:alias R='R --no-save'
Setiap kali Anda memulai konsol R
R
,--no-save
opsi tersebut akan diberikan .sumber
R --vanilla
untuk menggabungkanCombine --no-save, --no-restore, --no-site-file, --no-init-file and --no-environ
.Anda dapat keluar dari permintaan " Simpan gambar ruang kerja? " Dengan file Ctrl+D.
Jadi, jika Anda melakukan Ctrl+Ddua kali dalam R interaktif, maka Anda keluar dari R tanpa menyimpan ruang kerja Anda.
(Diuji di Linux dan OS X)
sumber
Jika Anda menggunakan Rgui, klik kanan pada ikon yang Anda gunakan untuk memulai R dan klik "Properties", dan tambahkan --no-save ke perintah yang memulai R.
(dari http://tolstoy.newcastle.edu.au/R/help/05/03/1115.html )
Jika Anda menggunakan editor yang berbeda dari Rgui, Anda harus meneruskan --no-save ke baris perintah R saat memulai R
sumber
Timpa opsi default untuk menyimpan argumen dari fungsi keluar
formals(quit)$save <- formals(q)$save <- "no"
letakkan baris ini di .Rprofile
Edit: ditambahkan
q
, jadi tidak ada permintaan apa pun varian mana yang digunakansumber
Dapatkan yang terbaik dari kedua strategi yang diberikan oleh pengguna 1 dan 2 :
Default untuk tidak menyimpan dengan menambahkan baris berikut ke ~ / .bashrc Anda:
alias R='R --no-save'
Tetapi beri diri Anda cara mudah untuk menghemat saat keluar dengan menambahkan ini ke ~ / .Rprofile:
qs <- function(save="yes") { q(save=save)}
Jadi sekarang
q()
akan berhenti tanpa menyimpan atau meminta tetapiqs()
akan menyimpan dan keluar (juga tanpa disuruh)sumber
wq <- function() { q(save="yes")}
untuk mencerminkan vi. (juga, jika Anda menulis fungsi timpa, mengapa tidak membuatnya mengirim argumen tetap)Anda dapat dengan mudah menambahkan
qq()
fungsi ke file .Rprofileqq <- function(save="no") { q(save=save)}
Saya pikir opsi simpan tersedia dengan opsi, tetapi ternyata jawaban Joshua adalah yang terbaik.
sumber
Jika, seperti saya, mengetikkan seluruh sepasang tanda kurung sepertinya terlalu banyak usaha untuk keluar dari repl, Anda dapat mencoba ini:
exit <- structure(list(), class = "exit_command") print.exit_command <- function(...) { q("no") # exit without saving }
Ini menciptakan kelas baru, yang menyebabkan R keluar saat mencoba mencetak kelas tersebut. Hasilnya adalah jika Anda menjalankan
exit
repl R, semuanya akan keluar (karena mencoba untuk mencetaknya).NB: Anda dapat menambahkannya ke
~/.Rprofile
untuk memuat di awal setiap sesi.sumber
Bagaimana kalau menghindari prompt dengan mengetik
q('no')
sajasumber
Anda dapat membuat alias untuk perintah R:
menggunakan bash :
alias R='R --no-save'
menggunakan csh:
alias R 'R --no-save'
sumber
Jika Anda merasa cukup berjiwa petualang, Anda juga bisa mengedit
startup
bagian di akhir/usr/bin/R
, yaitu menambahkan--no-save
ke panggilan exec. Namun, jika Anda perlu menyimpan ruang kerja Anda, ingatlah untuksave.image()
.sumber
/usr/bin
- dan sangat tidak menyarankan Anda melakukannya. Itulah area sistem, "personel yang tidak berwenang dilarang"./usr
kepada robot (maksud saya, manajer paket) karena mereka sudah mengelola area itu. Ada cara untuk tidak ikut campur. Jika tidak, Anda sengaja mencari petualangan.