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.

Berk U.
sumber
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.

E Luxo Jadi
sumber
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.

Rindra
sumber
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().

Carl Witthoft
sumber
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.

kmario23
sumber
23

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

Ini berfungsi dengan baik untuk saya di Windows 10.

myfirstAnswer
sumber
20

shell("cls") jika di Windows,

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

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

Ryan Blanchard
sumber
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).

berdebat
sumber
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())
jvd10
sumber
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
4

Jika Anda menggunakan konsol R default CTRL+L

RStudio - CTRL+L

Rakesh
sumber
Bekerja pada macOS juga
Andrea Girardi
3

Anda dapat menggabungkan dua perintah berikut

cat("\014"); 
cat(rep("\n", 50))
Léo Léopold Hertz 준영
sumber
3

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

Nikhil
sumber
0

cat ("\ 014"). Ini akan bekerja jangan khawatir

MAITRA SATYAJIT
sumber