Función para borrar la consola en R y RStudio


320

Me pregunto si hay una función para borrar la consola en R y, en particular, RStudio. Estoy buscando una función que pueda escribir en la consola, y no un atajo de teclado.

Alguien ya ha proporcionado dicha función en esta publicación de StackExchange de 2010 . Desafortunadamente, esto depende del paquete RCom y no se ejecutará en Mac OS X.


No es un duplicado exacto, pero está bastante relacionado y la respuesta a esta pregunta se dio a continuación: stackoverflow.com/questions/8421005/…
Dason

Solo escriba clccon este script clc.R que desarrollo. ¿Como funciona? clc<-0; class(clc) <- 'cleanup'; print.cleanup <- function(cleanupObject) cat("\f"). La última línea corresponde a RStudio pero en el terminal cámbielo print.cleanup <- function(cleanupObject) cat(c("\033[2J","\033[H")). El clc.R contiene más detalles.
HubertRonald

Respuestas:


545
cat("\014")  

es el código para enviar CTRL+ La la consola y, por lo tanto, borrará la pantalla.

Mucho mejor que solo enviar un montón de devoluciones.


14
Esto solo imprime una sola línea en blanco en mi terminal interactiva (en Ubuntu y Mac OSX)
Scott Ritchie

2
Funciona para mi. Esto también podría ayudar con el extremadamente lento error de consola en Rstudio.
Ruben

10
Funciona en RStudio en Mac, pero no en R.app! En R.app, el comando Cmd + Alt + L borra la pantalla, no Ctrl + L ... ¿Hay un 'código' similar para enviar esa combinación de teclas a R.app? (Veo que \ 014 es el código ASCII para Form Feed, por lo que supongo que no está enviando la combinación de teclas sino solo el comando Form Feed, lo que hace improbable que exista un 'código' para Cmd + Alt + L).
Johan

2
no funciona para mi Windows 7, consola R. (r.exe).
No sabe mucho

77
Esto funciona solo en RStudio en Windows, no en la consola R "habitual" ni en una consola DOS. Para el registro, también es el carácter de Feed de formulario, y solo puede escribir cat("\f").

103

Si está utilizando la consola R predeterminada, la combinación de teclas Option+ Command+ Lborrará la consola.


20
CTRL-L por si pensabas que era una "i", como yo :)
Neil McGuigan

55
Ctrl + L para Rstudio en OSX Yosemite también.
ThinkBonobo

77
Esto no responde la pregunta. El OP quería una función y claramente dijo que no era un atajo de teclado.
demongolem

34

Puedes definir la siguiente función

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

que luego puedes llamar como clc().


24

En Ubuntu-Gnome , simplemente presionando CTRL+ Ldebería borrar la pantalla.

Esto también parece funcionar bien en Windows 10 y 7 y Mac OS X Sierra.


23

cat("\f")puede ser más fácil de recordar que cat("\014").

Funciona bien para mí en Windows 10.


20

shell("cls") si en Windows,

shell("clear") si en Linux o Mac.

( shell()pasa un comando (o cualquier cadena) al terminal host).


1
Esto funcionó. No es tan elegante como las otras respuestas, pero es mucho más fácil de recordar.
Martini Bianco

2
Este es el único comando que funcionó para mí en la consola Rterm en Windows 10 ... pero qué pena tener que escribir todo eso ...
Michael Szczepaniak

Sí, por eso lo aprendí, también uso el terminal R en Windows 10 (mucho más fácil que cargar RStudio), y es útil poder pasar comandos al shell. Creo que en R hay una forma de "mapear" una secuencia de caracteres a un comando en particular, aunque no recuerdo exactamente cómo hacerlo, creo que es un poco como un alias en bash, o tal vez es más como una función, pero podría hacerlo para reducir la cantidad de escritura. (Por ejemplo, creo que podría configurarlo donde algo como clr()o clrejecuta el comando shell("cls")o shell("clear").)
Ryan Blanchard

1
Del mismo modo, este fue el único que funcionó tanto para RStudio como para mi Windows 7 shell (cmd.exe). Para .Rprofile He añadido: clear_fun <- function() shell("cls"); makeActiveBinding("cls", clear_fun, baseenv());

1
Esto funciona para el terminal en Visual Studio Code en Windows.
Bill Wallis

12

Desarrollé un paquete R que hará esto, tomando prestado de las sugerencias anteriores. El paquete se llama llamado mise, como en "mise en place". Puedes instalarlo y ejecutarlo usando

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

Tenga en cuenta que mise()también elimina todas las variables y funciones y cierra todas las figuras de forma predeterminada. Para borrar la consola, use mise(vars = FALSE, figs = FALSE).


12

Aquí hay una función:

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

a continuación, sólo tiene que llamar, como se llama a cualquier otra función R, clear().

Si prefiere simplemente escribir clear(en lugar de tener que escribir clear(), es decir, entre paréntesis), puede hacerlo

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

2
Al igual que el \014enfoque, este enfoque me da personajes divertidos (de la consola R en una máquina con Windows 10).
demongolem

A diferencia de \ 014 (o \ f), esto funcionó para mí en Windows 10 en Rterm.
Martini Bianco

@MartiniBianco: Creo que las respuestas aquí deberían ayudar. Básicamente "\ 033" es "ESC". El "[2J" y "[0; 0H" borran la pantalla y mueven el cursor a la esquina superior izquierda, respectivamente.
jvd10



3

En linux uso system("clear")para borrar la pantalla.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.