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.


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.


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.


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


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.


23

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

Cela fonctionne bien pour moi sur Windows 10.


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


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


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())

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



3

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


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.