Chức năng xóa giao diện điều khiển trong R và RStudio


319

Tôi tự hỏi nếu có một chức năng để xóa giao diện điều khiển trong R và đặc biệt, RStudio Tôi đang tìm kiếm một chức năng mà tôi có thể nhập vào giao diện điều khiển, chứ không phải là một phím tắt.

Ai đó đã cung cấp một chức năng như vậy trong bài đăng StackExchange này từ năm 2010 . Thật không may, điều này phụ thuộc vào gói RCom và sẽ không chạy trên Mac OS X.


Nó không phải là một bản sao chính xác nhưng nó có liên quan khá cao và câu trả lời cho câu hỏi này đã được đưa ra trong phần sau - stackoverflow.com/questions/8421005/
trộm

Chỉ gõ clcvới tập lệnh này clc.R mà tôi phát triển. Làm thế nào nó hoạt động? clc<-0; class(clc) <- 'cleanup'; print.cleanup <- function(cleanupObject) cat("\f"). Dòng cuối cùng tương ứng với RStudio nhưng trong thiết bị đầu cuối thay đổi nó bằng print.cleanup <- function(cleanupObject) cat(c("\033[2J","\033[H")). Các clc.R chứa thêm chi tiết.
HubertRonald

Câu trả lời:


545
cat("\014")  

là mã để gửi CTRL+ Lđến bàn điều khiển và do đó sẽ xóa màn hình.

Tốt hơn nhiều so với việc chỉ gửi rất nhiều lợi nhuận.


14
Điều này chỉ in một dòng trống duy nhất đến thiết bị đầu cuối tương tác của tôi (trên cả Ubuntu và Mac OSX)
Scott Ritchie

2
Làm việc cho tôi. Điều này cũng có thể giúp với bộ điều khiển cực kỳ chậm- bọ trong Rstudio.
Ruben

10
Hoạt động trong RStudio trên Mac, nhưng không hoạt động trong R.app! Trong R.app, lệnh Cmd + Alt + L sẽ xóa màn hình, không phải Ctrl + L ... Có một 'mã' tương tự để gửi tổ hợp phím đó đến R.app không? .
Johan

2
không làm việc cho tôi. cửa sổ 7, bảng điều khiển R. (r.exe).
Không biết nhiều

7
Điều này chỉ hoạt động trong RStudio trên Windows, không phải trong bảng điều khiển R "thông thường" cũng như trong bảng điều khiển DOS. Đối với bản ghi, đó cũng là ký tự Form Feed và bạn chỉ cần nhập cat("\f").

103

Nếu bạn đang sử dụng bảng điều khiển R mặc định, tổ hợp phím Option+ Command+ Lsẽ xóa bảng điều khiển.


20
CTRL-L chỉ trong trường hợp bạn nghĩ đó là "i", giống như tôi :)
Neil McGuigan

5
Ctrl + L cho Rstudio trên OSX Yosemite.
ThinkBonobo

7
Điều này không trả lời câu hỏi. OP muốn có một chức năng và nói rõ ràng không phải là một phím tắt.
demongolem

34

Bạn có thể xác định chức năng sau

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

mà sau đó bạn có thể gọi là clc().


24

Trong Ubuntu-Gnome , chỉ cần nhấn CTRL+ Lsẽ xóa màn hình.

Điều này dường như cũng hoạt động tốt trong Windows 10 và 7 và Mac OS X Sierra.


23

cat("\f")có thể dễ nhớ hơn cat("\014").

Nó hoạt động tốt với tôi trên Windows 10.


19

shell("cls") nếu trên Windows,

shell("clear") nếu trên Linux hoặc Mac.

( shell()chuyển một lệnh (hoặc bất kỳ chuỗi nào) đến thiết bị đầu cuối máy chủ.)


1
Điều này đã làm việc. Nó không thanh lịch như các câu trả lời khác, nhưng dễ nhớ hơn nhiều.
Martini Bianco

2
Đây là lệnh duy nhất hoạt động với tôi trong bảng điều khiển Rterm trên Windows 10 ... nhưng thật đau đớn khi phải gõ tất cả những điều đó ...
Michael Szczepaniak

Đúng, đó là lý do tại sao tôi học được nó - Tôi cũng sử dụng thiết bị đầu cuối R trên Windows 10 (dễ dàng hơn nhiều so với tải RStudio) - và thật tiện lợi khi có thể truyền lệnh cho trình bao. Tôi tin rằng có một cách trong R để sắp xếp "ánh xạ" một chuỗi các ký tự cho một lệnh cụ thể, mặc dù tôi không thể nhớ chính xác cách thực hiện - tôi nghĩ nó giống như một bí danh trong bash, hoặc có thể hơn thế giống như một chức năng - nhưng bạn có thể làm điều đó để giảm số lượng nhập. (Ví dụ, tôi nghĩ rằng bạn có thể thiết lập nó ở nơi có thứ gì đó giống clr()hoặc clrchạy lệnh shell("cls")hoặc shell("clear").)
Ryan Blanchard

1
Tương tự, đây là cái duy nhất hoạt động cho cả RStudio và Windows 7 shell (cmd.exe) của tôi. Tới .Rprofile tôi đã thêm: clear_fun <- function() shell("cls"); makeActiveBinding("cls", clear_fun, baseenv());

1
Điều này hoạt động cho thiết bị đầu cuối trong Visual Studio Code trên Windows.
Bill Wallis

12

Tôi đã phát triển một gói R sẽ làm điều này, mượn từ các gợi ý ở trên. Gói được gọi là mise, như trong "mise en place." Bạn có thể cài đặt và chạy nó bằng

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

Lưu ý rằng mise()cũng xóa tất cả các biến và chức năng và đóng tất cả các số liệu theo mặc định. Để chỉ xóa giao diện điều khiển, sử dụng mise(vars = FALSE, figs = FALSE).


12

Đây là một chức năng:

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

sau đó bạn có thể chỉ cần gọi nó, như bạn gọi bất kỳ hàm R nào khác , clear().

Nếu bạn chỉ muốn gõ đơn giản clear(thay vì phải gõ clear(), tức là với dấu ngoặc đơn), thì bạn có thể làm

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

2
Giống như \014cách tiếp cận, cách tiếp cận này mang lại cho tôi những nhân vật ngộ nghĩnh (từ bảng điều khiển R trên máy Windows 10).
demongolem

Không giống như \ 014 (hoặc \ f), điều này làm việc với tôi trên Windows 10 trong Rterm.
Martini Bianco

@MartiniBianco: Tôi nghĩ rằng câu trả lời ở đây sẽ giúp ích. Về cơ bản "\ 033" là "ESC". "[2J" và "[0; 0H" xóa màn hình và di chuyển con trỏ sang phía trên bên trái, tương ứng.
jvd10

4

Nếu bạn đang sử dụng bảng điều khiển R mặc định CTRL+L

RStudio - CTRL+L


Hoạt động trên macOS cũng vậy
Andrea Girardi


3

Trong linux sử dụng system("clear")để xóa màn hình.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.