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.

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

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

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

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

kmario23
fuente
23

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

Funciona bien para mí en Windows 10.

myfirstAnswer
fuente
20

shell("cls") si en Windows,

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

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

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

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

Si está utilizando la consola R predeterminada CTRL+L

RStudio - CTRL+L

Rakesh
fuente
También funciona en macOS
Andrea Girardi
3

Puedes combinar los siguientes dos comandos

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

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

Nikhil
fuente
0

gato ("\ 014"). Esto funcionará sin preocupaciones

SATYAJIT MAITRA
fuente