Funktion zum Löschen der Konsole in R und RStudio


319

Ich frage mich, ob es eine Funktion zum Löschen der Konsole in R und insbesondere in RStudio gibt. Ich suche nach einer Funktion, die ich in die Konsole eingeben kann, und nicht nach einer Tastenkombination.

Jemand hat bereits in diesem StackExchange-Beitrag von 2010 eine solche Funktion bereitgestellt . Leider hängt dies vom RCom-Paket ab und läuft nicht unter Mac OS X.


Es ist kein genaues Duplikat, aber es ist ziemlich verwandt und die Antwort auf diese Frage wurde im Folgenden gegeben - stackoverflow.com/questions/8421005/…
Dason

Geben Sie nur clcmit diesem Skript clc.R ein , das ich entwickle. Wie funktioniert es? clc<-0;; class(clc) <- 'cleanup';; print.cleanup <- function(cleanupObject) cat("\f"). Die letzte Zeile entspricht RStudio, ändert sie jedoch im Terminal um print.cleanup <- function(cleanupObject) cat(c("\033[2J","\033[H")). Der clc.R enthält weitere Details.
HubertRonald

Antworten:


545
cat("\014")  

ist der zu sendende Code CTRL+L an die Konsole gesendet werden soll, und löscht daher den Bildschirm.

Weitaus besser als nur eine Menge Retouren zu verschicken.


14
Dies druckt nur eine einzelne leere Zeile auf meinem interaktiven Terminal (sowohl unter Ubuntu als auch unter Mac OSX)
Scott Ritchie

2
Funktioniert bei mir. Dies könnte auch bei dem extrem langsamen Konsolenfehler in Rstudio helfen.
Ruben

10
Funktioniert in RStudio auf Mac, aber nicht in R.app! In R.app löscht der Befehl Cmd + Alt + L den Bildschirm, nicht Strg + L ... Gibt es einen ähnlichen 'Code', um diese Tastenkombination an R.app zu senden? (Ich sehe, dass \ 014 der ASCII-Code für den Formularvorschub ist, also wird wahrscheinlich nicht die Tastenkombination gesendet, sondern nur der Befehl "Formularvorschub", wodurch es unwahrscheinlich ist, dass ein "Code" für Cmd + Alt + L vorhanden ist.)
Johan

2
funktioniert bei mir nicht Windows 7, R Konsole. (r.exe).
Weiß nicht viel

7
Dies funktioniert nur in RStudio unter Windows, nicht in der "üblichen" R-Konsole oder in einer DOS-Konsole. Für den Datensatz ist es auch das Formular-Feed-Zeichen, und Sie können einfach eingeben cat("\f").

103

Wenn Sie die Standard - R - Konsole verwenden, die Tastenkombination Option+ Command+ Lwird die Konsole löschen.


20
STRG-L nur für den Fall, dass Sie dachten, das wäre ein "i", wie ich :)
Neil McGuigan

5
Strg + L für Rstudio auch unter OSX Yosemite.
ThinkBonobo

7
Dies beantwortet die Frage nicht. Das OP wollte eine Funktion und sagte eindeutig keine Tastenkombination.
Demongolem

34

Sie können die folgende Funktion definieren

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

die Sie dann als anrufen können clc().


24

In Ubuntu-Gnome sollte durch einfaches Drücken von CTRL+ Lder Bildschirm gelöscht werden.

Dies scheint auch in Windows 10 und 7 und Mac OS X Sierra gut zu funktionieren.


23

cat("\f")ist vielleicht leichter zu merken als cat("\014").

Es funktioniert gut für mich unter Windows 10.


19

shell("cls") Wenn unter Windows,

shell("clear") wenn unter Linux oder Mac.

( shell()übergibt einen Befehl (oder eine beliebige Zeichenfolge) an das Host-Terminal.)


1
Das hat funktioniert. Es ist nicht so elegant wie die anderen Antworten, aber viel leichter zu merken.
Martini Bianco

2
Dies ist der einzige Befehl, der für mich in der Rterm-Konsole unter Windows 10 funktioniert hat ... aber was für ein Schmerz, all das eingeben zu müssen ...
Michael Szczepaniak

Ja, deshalb habe ich es gelernt - ich verwende auch das R-Terminal unter Windows 10 (viel einfacher als das Laden von RStudio) - und es ist praktisch, Befehle an die Shell übergeben zu können. Ich glaube, es gibt in R eine Möglichkeit, eine Folge von Zeichen einem bestimmten Befehl zuzuordnen, obwohl ich mich nicht genau erinnern kann, wie es geht - ich denke, es ist ein bisschen wie ein Alias ​​in Bash, oder vielleicht ist es mehr wie eine Funktion - aber Sie könnten das tun, um die Anzahl der Eingaben zu reduzieren. (Zum Beispiel, ich denke, Sie könnten es dort einrichten, wo so etwas wie clr()oder clrden Befehl shell("cls")shell("clear")
Ryan Blanchard

1
Ebenso war dies die einzige, die sowohl für RStudio- als auch für meine Windows 7-Shell-Fenster (cmd.exe) funktionierte. Zu .Rprofile habe ich hinzugefügt: clear_fun <- function() shell("cls"); makeActiveBinding("cls", clear_fun, baseenv());

1
Dies funktioniert für das Terminal in Visual Studio Code unter Windows.
Bill Wallis

12

Ich habe ein R-Paket entwickelt, das dies aus den obigen Vorschlägen entlehnt. Das Paket heißt aufgerufen mise, wie in "mise en place". Sie können es mit installieren und ausführen

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

Beachten Sie, dass mise()auch alle Variablen und Funktionen gelöscht und standardmäßig alle Zahlen geschlossen werden. Verwenden Sie zum Löschen der Konsole mise(vars = FALSE, figs = FALSE).


12

Hier ist eine Funktion:

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

dann können Sie es einfach aufrufen, wie Sie jede andere R-Funktion aufrufen, clear() .

Wenn Sie es vorziehen, einfach zu tippen clear(anstatt tippen zu müssen clear(), dh mit Klammern), können Sie dies tun

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

2
Ähnlich wie der \014Ansatz gibt mir dieser Ansatz lustige Charaktere (von der R-Konsole auf einem Windows 10-Computer).
Demongolem

Im Gegensatz zu \ 014 (oder \ f) funktionierte dies bei mir unter Windows 10 in Rterm.
Martini Bianco

@ MartininiBianco: Ich denke, dass die Antworten hier helfen sollten. Grundsätzlich ist "\ 033" "ESC". Mit "[2J" und "[0; 0H" wird der Bildschirm gelöscht und der Cursor nach links oben bewegt.
JVD10



3

Unter Linux verwenden Sie system("clear"), um den Bildschirm zu löschen.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.