Fonction pour effacer la console dans R et RStudio

320

Je me demande s'il y a une fonction pour effacer la console dans R et, en particulier, RStudio je cherche une fonction que je peux taper dans la console, et pas un raccourci clavier.

Quelqu'un a déjà fourni une telle fonction dans ce message StackExchange de 2010 . Malheureusement, cela dépend du package RCom et ne fonctionnera pas sur Mac OS X.

Berk U.
la source
Ce n'est pas un doublon exact, mais il est assez étroitement lié et la réponse à cette question a été donnée dans ce qui suit - stackoverflow.com/questions/8421005/…
Dason
Tapez uniquement clcavec ce script clc.R que je développe. Comment ça marche? clc<-0; class(clc) <- 'cleanup'; print.cleanup <- function(cleanupObject) cat("\f"). La dernière ligne correspond à RStudio mais dans le terminal changez-la par print.cleanup <- function(cleanupObject) cat(c("\033[2J","\033[H")). Le clc.R contient plus de détails.
HubertRonald

Réponses:

545
cat("\014")  

est le code pour envoyer CTRL+ Là la console, et donc effacera l'écran.

Bien mieux que d'envoyer tout un tas de retours.

E Luxo So
la source
14
Cela imprime juste une seule ligne vierge sur mon terminal interactif (sur Ubuntu et Mac OSX)
Scott Ritchie
2
Travaille pour moi. Cela pourrait également aider avec le bogue de console extrêmement lent dans Rstudio.
Ruben
10
Fonctionne dans RStudio sur Mac, mais pas dans R.app! Dans R.app, la commande Cmd + Alt + L efface l'écran, pas Ctrl + L ... Existe-t-il un "code" similaire pour envoyer cette combinaison de touches à R.app? (Je vois que \ 014 est le code ASCII pour Form Feed, donc je suppose qu'il n'envoie pas la combinaison de touches mais juste la commande Form Feed, ce qui rend peu probable l'existence d'un `` code '' pour Cmd + Alt + L.)
Johan
2
ne fonctionne pas pour moi. Windows 7, console R. (r.exe).
Ne sait pas grand-
7
Cela ne fonctionne que dans RStudio sous Windows, pas dans la console R "habituelle" ni dans une console DOS. Pour mémoire, c'est aussi le caractère de saut de page, et vous pouvez simplement taper cat("\f").
103

Si vous utilisez la console R par défaut, la combinaison de touches Option+ Command+ Leffacera la console.

Rindra
la source
20
CTRL-L juste au cas où vous pensiez que c'était un "i", comme moi :)
Neil McGuigan
5
Ctrl + L pour Rstudio sur OSX Yosemite également.
ThinkBonobo
7
Cela ne répond pas à la question. L'OP voulait une fonction et dit clairement pas un raccourci clavier.
demongolem
34

Vous pouvez définir la fonction suivante

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

que vous pouvez ensuite appeler comme clc().

Carl Witthoft
la source
24

Dans Ubuntu-Gnome , une simple pression sur CTRL+ Ldevrait effacer l'écran.

Cela semble également bien fonctionner sous Windows 10 et 7 et Mac OS X Sierra.

kmario23
la source
23

cat("\f")peut être plus facile à retenir que cat("\014").

Cela fonctionne bien pour moi sur Windows 10.

myfirstAnswer
la source
20

shell("cls") si sous Windows,

shell("clear") si sous Linux ou Mac.

( shell()passe une commande (ou n'importe quelle chaîne) au terminal hôte.)

Ryan Blanchard
la source
1
Cela a fonctionné. Ce n'est pas aussi élégant que les autres réponses, mais beaucoup plus facile à retenir.
Martini Bianco
2
C'est la seule commande qui a fonctionné pour moi dans la console Rterm sur Windows 10 ... mais quelle douleur d'avoir à taper tout ça ...
Michael Szczepaniak
Oui, c'est pourquoi je l'ai appris - j'utilise également le terminal R sur Windows 10 (beaucoup plus facile que de charger RStudio) - et c'est pratique de pouvoir passer des commandes au shell. Je crois qu'il existe un moyen dans R de "mapper" une séquence de caractères à une commande particulière, bien que je ne me souvienne pas exactement comment le faire - je pense que c'est un peu comme un alias dans bash, ou peut-être que c'est plus comme une fonction - mais vous pouvez le faire pour réduire la quantité de frappe. (Par exemple, je pense que vous pouvez le configurer où quelque chose comme clr()ou clrexécute la commande shell("cls")ou shell("clear").)
Ryan Blanchard
1
De même, c'était le seul qui fonctionnait à la fois pour RStudio et mes fenêtres Windows 7 shell (cmd.exe). Au .profil j'ai ajouté: clear_fun <- function() shell("cls"); makeActiveBinding("cls", clear_fun, baseenv());
1
Cela fonctionne pour le terminal dans Visual Studio Code sous Windows.
Bill Wallis
12

J'ai développé un package R qui fera cela, en empruntant aux suggestions ci-dessus. Le package est appelé appelé mise, comme dans "mise en place". Vous pouvez l'installer et l'exécuter en utilisant

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

Notez que mise()supprime également toutes les variables et fonctions et ferme toutes les figures par défaut. Pour effacer simplement la console, utilisez mise(vars = FALSE, figs = FALSE).

papplegate
la source
12

Voici une fonction:

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

alors vous pouvez simplement l' appeler, comme vous l' appelez toute autre fonction R, clear().

Si vous préférez simplement taper clear(au lieu d'avoir à taper clear(), c'est-à-dire avec les parenthèses), vous pouvez le faire

clear_fun <- function() cat(c("\033[2J","\033[0;0H"));
makeActiveBinding("clear", clear_fun, baseenv())
jvd10
la source
2
Tout comme l' \014approche, cette approche me donne des personnages amusants (à partir de la console R sur une machine Windows 10).
demongolem
Contrairement à \ 014 (ou \ f), cela a fonctionné pour moi sur Windows 10 dans Rterm.
Martini Bianco
@MartiniBianco: Je pense que les réponses ici devraient aider. Fondamentalement, "\ 033" est "ESC". Les touches "[2J" et "[0; 0H" effacent l'écran et déplacent le curseur en haut à gauche, respectivement.
jvd10
4

Si vous utilisez la console R par défaut CTRL+L

RStudio - CTRL+L

Rakesh
la source
Fonctionne également sur macOS
Andrea Girardi
3

Vous pouvez combiner les deux commandes suivantes

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

Sous Linux, utilisez system("clear")pour effacer l'écran.

Nikhil
la source
0

chat ("\ 014"). Cela fonctionnera. pas de soucis

SATYAJIT MAITRA
la source