Funzione per cancellare la console in R e RStudio


320

Mi chiedo se esiste una funzione per cancellare la console in R e, in particolare, RStudio Sto cercando una funzione che posso digitare nella console e non una scorciatoia da tastiera.

Qualcuno ha già fornito tale funzione in questo post StackExchange dal 2010 . Sfortunatamente, questo dipende dal pacchetto RCom e non funzionerà su Mac OS X.


Non è un duplicato esatto ma è piuttosto fortemente legato e la risposta a questa domanda è stato dato in seguito - stackoverflow.com/questions/8421005/...
Dason

Digita solo clccon questo script clc.R che sviluppo. Come funziona? clc<-0; class(clc) <- 'cleanup'; print.cleanup <- function(cleanupObject) cat("\f"). L'ultima riga corrisponde a RStudio ma nel terminale lo cambia di print.cleanup <- function(cleanupObject) cat(c("\033[2J","\033[H")). Il clc.R contiene ulteriori dettagli.
Hubert Ronald

Risposte:


545
cat("\014")  

è il codice da inviare CTRL+ Lalla console, quindi cancella lo schermo.

Molto meglio che inviare un sacco di resi.


14
Questo stampa una sola riga vuota sul mio terminale interattivo (sia su Ubuntu che su Mac OSX)
Scott Ritchie,

2
Per me va bene. Questo potrebbe anche aiutare con la console estremamente lenta in Rstudio.
Ruben,

10
Funziona in RStudio su Mac, ma non in R.app! In R.app il comando Cmd + Alt + L cancella lo schermo, non Ctrl + L ... Esiste un 'codice' simile per inviare quella combinazione di tasti a R.app? (Vedo che \ 014 è il codice ASCII per Form Feed, quindi immagino che non stia inviando la combinazione di tasti ma solo il comando Form Feed, il che rende improbabile che esista un 'codice' per Cmd + Alt + L.)
Johan,

2
Non funziona per me. Windows 7, console R. (r.exe).
Non sa molto il

7
Funziona solo in RStudio su Windows, non nella "solita" console R né in una console DOS. Per la cronaca, è anche il carattere Feed modulo e puoi semplicemente digitare cat("\f").

103

Se si utilizza la console R predefinita, la combinazione di tasti Option+ Command+ Lcancellerà la console.


20
CTRL-L nel caso in cui pensassi che fosse una "io", come me :)
Neil McGuigan,

5
Ctrl + L per Rstudio anche su OSX Yosemite.
ThinkBonobo,

7
Questo non risponde alla domanda. L'OP voleva una funzione e chiaramente diceva non una scorciatoia da tastiera.
demongolem,

34

È possibile definire la seguente funzione

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

che puoi quindi chiamare come clc().


24

In Ubuntu-Gnome , premere semplicemente CTRL+ per Lcancellare lo schermo.

Anche questo sembra funzionare bene in Windows 10 e 7 e Mac OS X Sierra.


23

cat("\f")potrebbe essere più facile da ricordare di cat("\014").

Funziona bene per me su Windows 10.


20

shell("cls") se su Windows,

shell("clear") se su Linux o Mac.

( shell()passa un comando (o qualsiasi stringa) al terminale host.)


1
Questo ha funzionato. Non è elegante come le altre risposte, ma molto più facile da ricordare.
Martini Bianco,

2
Questo è l'unico comando che ha funzionato per me nella console Rterm su Windows 10 ... ma che fatica dover digitare tutto questo ...
Michael Szczepaniak,

Sì, è per questo che l'ho imparato - utilizzo anche il terminale R su Windows 10 (molto più semplice del caricamento di RStudio) - ed è utile poter passare i comandi alla shell. Credo che in R esista un modo per "mappare" una sequenza di caratteri a un comando particolare, anche se non ricordo esattamente come farlo - penso che sia un po 'come un alias in bash, o forse è più come una funzione, ma potresti farlo per ridurre la quantità di battitura. (Ad esempio, penso che potresti sistemarlo dove qualcosa di simile clr()o clresegue il comando shell("cls")o shell("clear").)
Ryan Blanchard

1
Allo stesso modo, questo è stato l'unico che ha funzionato sia per RStudio che per Windows 7 shell (cmd.exe) di Windows. A .Rprofile Ho aggiunto: clear_fun <- function() shell("cls"); makeActiveBinding("cls", clear_fun, baseenv());

1
Questo funziona per il terminale in Visual Studio Code su Windows.
Bill Wallis,

12

Ho sviluppato un pacchetto R che lo farà, prendendo in prestito dai suggerimenti sopra. Il pacchetto si chiama chiamato mise, come in "mise en place". Puoi installarlo ed eseguirlo usando

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

Si noti che mise()elimina anche tutte le variabili e le funzioni e chiude tutte le figure per impostazione predefinita. Per cancellare la console, utilizzare mise(vars = FALSE, figs = FALSE).


12

Ecco una funzione:

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

allora si può semplicemente chiamare, come si chiama qualsiasi altra funzione R, clear().

Se preferisci semplicemente digitare clear(invece di dover digitare clear(), cioè con le parentesi), allora puoi farlo

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

2
Proprio come l' \014approccio, questo approccio mi dà personaggi divertenti (dalla console R su una macchina Windows 10).
demongolem,

A differenza di \ 014 (o \ f), questo ha funzionato per me su Windows 10 in Rterm.
Martini Bianco,

@MartiniBianco: penso che le risposte qui dovrebbero aiutare. Fondamentalmente "\ 033" è "ESC". "[2J" e "[0; 0H" cancellano lo schermo e spostano il cursore in alto a sinistra, rispettivamente.
jvd10



3

In Linux utilizzare system("clear")per cancellare lo schermo.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.