ฟังก์ชั่นเพื่อล้างคอนโซลใน R และ RStudio


319

ฉันสงสัยว่ามีฟังก์ชั่นในการล้างคอนโซลใน R หรือไม่โดยเฉพาะอย่างยิ่ง RStudio ฉันกำลังมองหาฟังก์ชั่นที่ฉันสามารถพิมพ์ลงในคอนโซลไม่ใช่แป้นพิมพ์ลัด

ใครบางคนที่มีอยู่แล้วให้ฟังก์ชั่นดังกล่าวในการโพสต์ StackExchange นี้จาก 2010 น่าเสียดายที่สิ่งนี้ขึ้นอยู่กับแพ็คเกจ RCom และจะไม่ทำงานบน Mac OS X


มันไม่ใช่คำที่ซ้ำกัน แต่มีความเกี่ยวข้องสูงและคำตอบสำหรับคำถามนี้มีดังต่อไปนี้ - stackoverflow.com/questions/8421005/…
Dason

พิมพ์เฉพาะclcกับสคริปต์นี้clc.Rที่ฉันพัฒนา มันทำงานยังไง? clc<-0; class(clc) <- 'cleanup'; print.cleanup <- function(cleanupObject) cat("\f"). บรรทัดสุดท้ายสอดคล้องกับ RStudio print.cleanup <- function(cleanupObject) cat(c("\033[2J","\033[H"))แต่ในการเปลี่ยนแปลงขั้วมันด้วย clc.Rมีรายละเอียดมากขึ้น
HubertRonald

คำตอบ:


545
cat("\014")  

เป็นรหัสที่จะส่งCTRL+ Lไปยังคอนโซลและดังนั้นจึงจะล้างหน้าจอ

ดีกว่าแค่ส่งผลตอบแทนมากมาย


14
นี่แค่พิมพ์บรรทัดว่างหนึ่งบรรทัดไปยังเทอร์มินัลการโต้ตอบของฉัน (ทั้ง Ubuntu และ Mac OSX)
Scott Ritchie

2
ได้ผลสำหรับฉัน สิ่งนี้อาจช่วยด้วยคอนโซล -bug ที่ช้ามากใน Rstudio
Ruben

10
ใช้งานได้ใน RStudio บน Mac แต่ไม่ใช่ใน R.app! ใน R.app คำสั่ง Cmd + Alt + L ล้างหน้าจอไม่ใช่ Ctrl + L ... มี 'code' ที่คล้ายกันในการส่งคีย์ผสมนั้นไปยัง R.app หรือไม่ (ฉันเห็นว่า \ 014 เป็นรหัส ASCII สำหรับฟีดฟอร์มดังนั้นฉันเดาว่ามันไม่ได้ส่งชุดค่าผสมคีย์ แต่เพียงคำสั่งป้อนฟอร์มซึ่งทำให้ไม่น่าจะมี 'รหัส' สำหรับ Cmd + Alt + L)
Johan

2
ไม่ได้ผลสำหรับฉัน windows 7, R คอนโซล (r.exe)
ไม่ทราบมาก

7
สิ่งนี้ใช้ได้เฉพาะใน RStudio บน Windows ไม่ใช่ในคอนโซล R ปกติหรือในคอนโซล DOS สำหรับเร็กคอร์ดนี้ยังเป็นอักขระป้อนฟอร์มและคุณสามารถพิมพ์cat("\f")ได้

103

หากคุณใช้คอนโซล R เริ่มต้นการผสมคีย์Option+ Command+ Lจะเป็นการล้างคอนโซล


20
CTRL-L ในกรณีที่คุณคิดว่าเป็น "ฉัน" เหมือนฉัน :)
นีล McGuigan

5
Ctrl + L สำหรับ Rstudio บน OSX Yosemite เช่นกัน
ThinkBonobo

7
นี่ไม่ได้ตอบคำถาม OP ต้องการฟังก์ชั่นและพูดอย่างชัดเจนว่าไม่ใช่แป้นพิมพ์ลัด
demongolem

34

คุณอาจกำหนดฟังก์ชั่นต่อไปนี้

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

ซึ่งคุณสามารถโทรclc()ได้


24

ในUbuntu-GnomeเพียงกดCTRL+ Lควรล้างหน้าจอ

สิ่งนี้ดูเหมือนว่าจะทำงานได้ดีใน Windows 10 และ 7 และ Mac OS X Sierra


23

cat("\f")cat("\014")อาจจะง่ายต่อการจดจำมากกว่า

มันใช้งานได้ดีสำหรับฉันบน Windows 10


19

shell("cls") ถ้าบน Windows

shell("clear") ถ้าบน Linux หรือ Mac

( shell()ส่งคำสั่ง (หรือสตริงใด ๆ ) ไปยังโฮสต์เทอร์มินัล)


1
สิ่งนี้ใช้ได้ผล มันไม่ได้สง่างามเท่าคำตอบอื่น ๆ แต่จดจำได้ง่ายกว่า
Martini Bianco

2
นี้เป็นคำสั่งเดียวที่ทำงานสำหรับฉันในคอนโซล Rterm บน Windows 10 ... แต่สิ่งที่เจ็บปวดที่จะมีการพิมพ์ทั้งหมดที่ ...
ไมเคิล Szczepaniak

ใช่นั่นคือเหตุผลที่ฉันเรียนรู้ - ฉันยังใช้เทอร์มินัล R บน Windows 10 (ง่ายกว่าการโหลด RStudio) - และมันมีประโยชน์ที่จะสามารถส่งคำสั่งไปยังเชลล์ได้ ฉันเชื่อว่ามีวิธีใน R ในการเรียงลำดับของ "map" ลำดับของอักขระไปยังคำสั่งเฉพาะแม้ว่าฉันจำไม่ได้ว่าจะทำอย่างไร - ฉันคิดว่ามันเป็นเหมือนนามแฝงในการทุบตีหรืออาจจะมากกว่า เหมือนฟังก์ชั่น - แต่คุณสามารถทำได้เพื่อลดปริมาณการพิมพ์ (ยกตัวอย่างเช่นผมคิดว่าคุณสามารถตั้งค่าที่สิ่งที่ต้องการclr()หรือclrรันคำสั่งshell("cls")หรือshell("clear").)
ไรอัน Blanchard

1
เช่นเดียวกันนี่เป็นสิ่งเดียวที่ใช้ได้กับทั้ง RStudio และ Windows 7 shell (cmd.exe) ของ Windows ถึง. โปรไฟล์ฉันได้เพิ่ม: clear_fun <- function() shell("cls"); makeActiveBinding("cls", clear_fun, baseenv());

1
สิ่งนี้ใช้ได้กับเทอร์มินัลใน Visual Studio Code บน Windows
Bill Wallis

12

ฉันพัฒนาแพ็คเกจ R ที่จะทำสิ่งนี้ยืมมาจากคำแนะนำด้านบน แพคเกจเรียกว่าเรียกว่าmiseใน "mise en place." คุณสามารถติดตั้งและรันโดยใช้

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

โปรดทราบว่าmise()จะลบตัวแปรและฟังก์ชันทั้งหมดและปิดตัวเลขทั้งหมดตามค่าเริ่มต้น mise(vars = FALSE, figs = FALSE)เพียงแค่ล้างคอนโซลใช้


12

นี่คือฟังก์ชั่น:

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

แล้วคุณก็สามารถเรียกว่าเป็นคุณเรียกใช้ฟังก์ชัน R อื่น clear()

หากคุณต้องการที่จะพิมพ์clear(แทนที่จะต้องพิมพ์clear()เช่นวงเล็บ) คุณสามารถทำได้

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

2
เช่นเดียวกับ\014วิธีการวิธีนี้ให้ตัวละครตลกกับฉัน (จากคอนโซล R บนเครื่อง Windows 10)
demongolem

ซึ่งแตกต่างจาก \ 014 (หรือ \ f) สิ่งนี้ใช้ได้กับฉันใน Windows 10 ใน Rterm
Martini Bianco

@MartiniBianco: ฉันคิดว่าคำตอบที่นี่น่าจะช่วยได้ โดยพื้นฐาน "\ 033" คือ "ESC" "[2J" และ "[0; 0H" ล้างหน้าจอและเลื่อนเคอร์เซอร์ไปทางซ้ายบนตามลำดับ
jvd10




โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.