Berfungsi untuk menghapus konsol di R dan RStudio


320

Saya bertanya-tanya apakah ada fungsi untuk menghapus konsol di R dan, khususnya, RStudio saya mencari fungsi yang bisa saya ketik di konsol, dan bukan pintasan keyboard.

Seseorang telah menyediakan fungsi seperti itu dalam posting StackExchange ini dari 2010 . Sayangnya, ini tergantung pada paket RCom dan tidak akan berjalan di Mac OS X.


Ini bukan duplikat yang tepat tetapi cukup sangat terkait dan jawaban untuk pertanyaan ini diberikan sebagai berikut - stackoverflow.com/questions/8421005/…
Dason

Cukup ketik clcdengan skrip ini clc.R yang saya kembangkan . Bagaimana cara kerjanya? clc<-0; class(clc) <- 'cleanup'; print.cleanup <- function(cleanupObject) cat("\f"). Baris terakhir sesuai dengan RStudio tetapi di terminal mengubahnya dengan print.cleanup <- function(cleanupObject) cat(c("\033[2J","\033[H")). The clc.R berisi rincian lebih lanjut.
HubertRonald

Jawaban:


545
cat("\014")  

adalah kode untuk mengirim CTRL+ Lke konsol, dan karenanya akan menghapus layar.

Jauh lebih baik daripada hanya mengirim banyak pengembalian.


14
Ini hanya mencetak satu baris kosong ke terminal interaktif saya (pada Ubuntu dan Mac OSX)
Scott Ritchie

2
Bekerja untukku. Ini mungkin juga membantu dengan -bug konsol yang sangat lambat di Rstudio.
Ruben

10
Bekerja di RStudio di Mac, tetapi tidak di R.app! Di R.app perintah Cmd + Alt + L membersihkan layar, bukan Ctrl + L ... Apakah ada 'kode' yang sama untuk mengirim kombinasi tombol itu ke R.app? (Saya melihat bahwa \ 014 adalah kode ASCII untuk Umpan Umpan, jadi saya kira itu bukan mengirim kombinasi kunci tetapi hanya perintah Umpan Umpan, yang membuatnya tidak mungkin bahwa 'kode' untuk Cmd + Alt + L akan ada.)
Johan

2
tidak bekerja untuk saya. windows 7, konsol R. (r.exe).
Tahu Tidak Banyak

7
Ini hanya berfungsi di RStudio di Windows, bukan di konsol R "biasa" atau di konsol DOS. Sebagai catatan, itu juga karakter Umpan Formulir, dan Anda bisa langsung mengetik cat("\f").

103

Jika Anda menggunakan konsol R default, kombinasi tombol Option+ Command+ Lakan menghapus konsol.


20
CTRL-L kalau-kalau Anda berpikir itu adalah "aku", seperti aku :)
Neil McGuigan

5
Ctrl + L untuk Rstudio di OSX Yosemite juga.
ThinkBonobo

7
Ini tidak menjawab pertanyaan. OP menginginkan suatu fungsi dan dengan jelas mengatakan bukan pintasan keyboard.
demongolem

34

Anda dapat menentukan fungsi berikut

clc <- function() cat(rep("\n", 50))

yang kemudian dapat Anda panggil sebagai clc().


24

Di Ubuntu-Gnome , cukup menekan CTRL+ Lakan menghapus layar.

Ini juga tampaknya bekerja dengan baik di Windows 10 dan 7 dan Mac OS X Sierra.


23

cat("\f")mungkin lebih mudah diingat daripada cat("\014").

Ini berfungsi dengan baik untuk saya di Windows 10.


20

shell("cls") jika di Windows,

shell("clear") jika di Linux atau Mac.

( shell()melewati perintah (atau string apa pun) ke terminal host.)


1
Ini berhasil. Tidak seanggun jawaban lainnya, tetapi jauh lebih mudah diingat.
Martini Bianco

2
Ini adalah satu-satunya perintah yang bekerja untuk saya di konsol Rterm pada Windows 10 ... tapi sungguh menyebalkan harus mengetik semua itu ...
Michael Szczepaniak

Yap, itu sebabnya saya mempelajarinya - saya juga menggunakan terminal R pada Windows 10 (jauh lebih mudah daripada memuat RStudio) - dan itu berguna untuk dapat meneruskan perintah ke shell. Saya percaya ada cara di R untuk mengurutkan "memetakan" urutan karakter ke perintah tertentu, meskipun saya tidak ingat persis bagaimana melakukannya - saya pikir itu agak seperti alias di bash, atau mungkin lebih seperti fungsi - tetapi Anda bisa melakukan itu untuk mengurangi jumlah pengetikan. (Misalnya, saya pikir Anda dapat mengaturnya di mana sesuatu seperti clr()atau clrmenjalankan perintah shell("cls")atau shell("clear").)
Ryan Blanchard

1
Demikian juga, ini adalah satu-satunya yang bekerja untuk RStudio, dan windows 7 shell (cmd.exe) saya. Untuk. Profil saya telah menambahkan: clear_fun <- function() shell("cls"); makeActiveBinding("cls", clear_fun, baseenv());

1
Ini berfungsi untuk terminal dalam Visual Studio Code pada Windows.
Bill Wallis

12

Saya mengembangkan paket R yang akan melakukan ini, meminjam dari saran di atas. Paket ini disebut dipanggil mise, seperti di "mise en place." Anda dapat menginstal dan menjalankannya menggunakan

install.packages("mise")
library(mise)
mise()

Catatan yang mise()juga menghapus semua variabel dan fungsi dan menutup semua angka secara default. Untuk menghapus konsol, gunakan mise(vars = FALSE, figs = FALSE).


12

Inilah fungsinya:

clear <- function() cat(c("\033[2J","\033[0;0H"))

maka Anda bisa memanggilnya, seperti Anda memanggil fungsi R lainnya clear(),.

Jika Anda lebih suka mengetik clear(daripada harus mengetik clear(), yaitu dengan tanda kurung), maka Anda bisa melakukannya

clear_fun <- function() cat(c("\033[2J","\033[0;0H"));
makeActiveBinding("clear", clear_fun, baseenv())

2
Sama seperti \014pendekatan, pendekatan ini memberi saya karakter lucu (dari konsol R pada mesin Windows 10).
demongolem

Tidak seperti \ 014 (atau \ f) ini bekerja untuk saya di Windows 10 di Rterm.
Martini Bianco

@MartiniBianco: Saya pikir jawabannya di sini akan membantu. Pada dasarnya "\ 033" adalah "ESC". "[2J" dan "[0; 0H" menghapus layar dan menggerakkan kursor ke kiri atas, masing-masing.
jvd10



3

Di linux digunakan system("clear")untuk menghapus layar.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.