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.

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

E Luxo So.
quelle
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.

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

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

kmario23
quelle
23

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

Es funktioniert gut für mich unter Windows 10.

myfirstAnswer
quelle
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.)

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

papplegate
quelle
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())
jvd10
quelle
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
4

Wenn Sie die Standard-R-Konsole CTRL+ verwendenL

RStudio - CTRL+L

Rakesh
quelle
Und im Skriptcode?
PeyM87
Funktioniert auch unter macOS
Andrea Girardi
3

Sie können die folgenden zwei Befehle kombinieren

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

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

Nikhil
quelle
0

Katze ("\ 014"). Das wird funktionieren. Keine Bange

SATYAJIT MAITRA
quelle