Profiter pleinement de RStudio (et de ses nouveautés) et programmer comme l’éclair

Le 22 mai dernier, RStudio a lancé sa nouvelle version 1.3.959. Qu’est-ce-qui change ? En plus de vous parler des nouveautés que vous pourrez rencontrer dans votre IDE préféré, j’en profiterai pour vous donner des astuces qui vous permettront de gagner pas mal de temps.

Installation

Je vous conseille dans un premier temps de passer à la nouvelle version de R (v4.0 à l’heure actuelle). Téléchargez-là directement depuis la CRAN : https://cran.r-project.org/. Vous aurez besoin de réinstaller tous vos packages, et cela peut prendre un certain temps… Je vous invite également à prendre connaissance des modification majeures de cette nouvelle version de R : https://cran.r-project.org/doc/manuals/r-release/NEWS.html

Pour mettre à niveau votre version de R sous Windows, nous vous conseillons de regarder le package {installr} et sa fonction updateR(). Pour des conseils sur l’installation de la version 4.0 de R sur Ubuntu 20.04, suivez ce lien.

Installez ensuite la toute nouvelle version de RStudio, via ce lien de téléchargement.

Amélioration de l’accessibilité

Tout d’abord, des bonnes nouvelles pour les personnes souffrant de handicaps visuels (pour paramétrer certaines de ces options : Tools > Global Options > Accessibility.):

  • Rstudio supporte désormais les lecteurs d’écran – ou “screen reader” – qui sont des logiciels permettant de retranscrire par synthèse vocale et/ou sur un afficheur braille ce qui est affiché à l’écran.
  • Amélioration des contrastes pour répondre aux standards WCAG 2.1 AA pour le thème par défaut se RStudio
  • Un indicateur visuel de la zone de focus/zone active, soit un rectangle bleu autour de la zone, est maintenant accessible temporairement en appuyant sur la touche MAJ

Vous trouverez plus de détails en anglais sur l’article “Accessibilité” de Rstudio.

La navigation clavier au sein de l’IDE a été améliorée, et si elle est indispensable aux personnes malvoyantes, elle peut être très utile à tout le monde et permet de gagner vraiment beaucoup de temps.

Note : Les raccourcis clavier que je vous présente dans la suite de cet article sont applicables sur PC. Si vous êtes sur Mac, remplacez CTRL par la commande ⌘ , et ALT par ⌥

Navigation entre les principaux panneaux de RStudio

On passe beaucoup de temps à naviguer entre la source du code, la console, les fichiers, les plots, … Il vous est possible de changer rapidement de panneau actif – celui dans lequel vous êtes en train d’écrire – et cela sans utiliser votre souris. Il suffit d’utiliser les raccourcis claviers suivants :

ATTENTION : les raccourcis notés (*) ne fonctionnent aujourd’hui que pour les claviers QWERTY, il va falloir attendre la v1.4 pour les claviers AZERTY (espérons), alors un peu de patience…

  • CTRL + 1 pour basculer vers la source (*)
  • CTRL + 2 pour basculer vers la console
  • CTRL + 3 pour afficher l’aide (Help) (*)
  • CTRL + 4 pour afficher l’historique (History) (*)
  • CTRL + 5 pour afficher les fichiers (Files) (*)
  • CTRL + 6 pour afficher les graphiques (Plots) (*)
  • CTRL + 7 pour afficher les packages
  • CTRL + 8 pour afficher l’environnement (Environment) (*)
  • CTRL + 9 pour afficher le Viewer

Je vous assure que quand vous aurez pris l’habitude de les utiliser, les deux premiers en particulier, vous ne pourrez plus vous en passer ! Pour la plupart de ces commandes, l’ajout de la touche MAJ (ou SHIFT), permet un focus sur le panneau correspondant, en zoomant dessus. Pour afficher de nouveau tous les panneaux sur votre écran, tapez CTRL + ALT + SHIFT + 0.

Note :

  • Lorsqu’on écrit 2 dans “CTRL + 2”, cela veut dire la touche qui a un “2” et un “é” dessus. Ça ne veut pas dire qu’il faut essayer d’écrire 2 avec SHIFT. Sinon, vous allez vous retrouver avec le focus sur le panel 2, c’est-à-dire avec aucun autre panel visible
  • Si vous vous retrouvez avec un seul panel visible justement, vous pouvez retrouver vos 4 panels avec “CTRL + SHIFT + ALT + 0” sur Windows (“CTRL + SHIFT + 0” sur Ubuntu) ou bien aller dans le menu View > Panes > Show All Panes.

Navigation entre les fichiers ouverts dans l’éditeur et gestion

Autres commandes utiles, particulièrement quand vous développez une application Shiny, vous permettant de naviguer rapidement entre vos différents fichiers ouverts dans l’éditeur :

  • CTRL + Tab ou CTRL + F12 pour aller à l’onglet suivant
  • CTRL + MAJ + Tab ou CTRL + F11 pour aller à l’onglet précédent
  • CTRL + MAJ + . accès à un onglet en particulier
  • CTRL + W permet de fermer l’onglet courant
  • CTRL + MAJ + W permet de fermer tous les onglets
  • CTRL + MAJ + N ouvre un nouvel onglet pour un nouveau fichier R
  • CTRL + S sauvegarde les modifications de l’onglet courant
  • CTRL + ALT + S sauvegarde tous les fichiers

Evidemment, on n’oublie pas le raccourci le plus utilisé de tous : CTRL + Enter permettant d’exécuter la ligne active (et de passer à la ligne suivante) ou le code sélectionné dans l’éditeur. Mais il y a d’autres raccourcis utiles pour exécuter du code :

  • ALT + Enter exécute la ligne active sans passer à la ligne suivante
  • CTRL + ALT + R exécute la totalité du code
  • Ctrl + Alt + B ou Ctrl + Alt + E exécute le code depuis le début jusqu’à la ligne courante, respectivement depuis la ligne courante jusqu’à la fin du code

Un correcteur orthographique live

Une nouveauté très utile par exemple quand on rédige des R Markdown, des descriptions, l’aide d’une fonction ou autre : le correcteur orthographique.

  • vérification orthographique en temps réel, au fur et à mesure que vous écrivez
  • dictionnaires personnalisables : ajoutez des mots à votre dictionnaire
  • suggestions de correction accessibles via le clic droit

Pour modifier la langue du dictionnaire : Tools > Global Options > Spelling

Les tutoriels de {learnr}

Les tutoriels du package {learnr} disposent maintenant de leur propre onglet dans RStudio :

Ce nouvel onglet vous permettra de suivre un tutoriel sans sortir de RStudio et de coder, exécuter, tester tout en y ayant accès. Ça nous facilite bien la vie non ? De plus, RStudio indexera et affichera automatiquement les tutoriels des packages R installés (par exemple {vegawidget}, {sortable} ou encore {sur}).

Si vous souhaitez ajouter votre propre tutoriel à cette liste et l’enrichir, publiez-le sur la page de learnr ! Vos tutoriels peuvent contenir :

  • textes, figures, illustrations et équations
  • exercices de code (code R que les utilisateurs pourront directement modifier et exécuter)
  • questionnaires
  • vidéos (hébergées sur YouTube ou Vimeo)
  • composants interactifs

Utiliser la force des raccourcis clavier “shortcuts” pour diminuer le temps de programmation

Ce n’est pas nouveau, mais il faut le rappeler : les raccourcis claviers, en plus de faciliter la navigation au sein de RStudio, peuvent vous permettre de gagner un temps précieux lorsque vous programmez. En effet, certains raccourcis écrivent du code entier, par exemple :

  • ALT + – écrira le signe d’assignation <- (avec les espaces avant et après)
  • CTRL + MAJ + M écrira le signe du pipe %>%
  • CTRL + MAJ + R vous permettra d’écrire proprement un titre de nouvelle section :
# Nouvelle section R --------------------------------------------
  • CTRL + ALT + I insérera un code chunk R dans votre code Rmarkdown :

  • CTRL + ALT + X : alors celui-là est très intéressant. Si vous avez un bout de code que vous souhaitez transformer en fonction, ce raccourci-clavier fera tout le boulot tout seul, jusqu’à deviner le nom des paramètres de la fonction, vous n’aurez qu’à entrer le nom de la fonction. J’ai par exemple le code suivant :
somme <- x + y
somme

Je tape CTRL + ALT + X après avoir sélectionné ce code, une fenêtre s’ouvre :

Et mon code se transforme automatiquement en :

ma_somme <- function(x, y) {
  somme <- x + y
  somme
}
  • CTRL + ALT + V : ce raccourci vous permettra d’extraire une partie de votre code pour en faire une variable. Par exemple, vous avez le code suivant :
print("Exemple de raccourci : exctraction de variable")

Je tape CTRL + ALT + V après avoir sélectionné "Exemple de raccourci : exctraction de variable", une fenêtre s’ouvre :

Et mon code se transforme automatiquement en :

ma_var <- "Exemple de raccourci : exctraction de variable"
print(ma_var)

Petit défaut à noter toutefois, cette manipulation remplacera uniquement le texte sélectionné. Si vous avez par exemple :

mod1 <- glm(y ~ a + I(b+c), data = my_data, family = gaussian)
mod2 <- glm(y ~ a + I(b+c), data = my_data, family = Gamma)

Si je sélectionne y ~ a + I(b+c) dans la première ligne du code pour en faire une variable my_formula, la seconde ligne ne sera pas modifiée. Cela limite fortement l’intérêt de cette fonctionnalité à mon avis.

Il existe également quelques raccourcis qui permettent d’améliorer la lisibilité de votre code :

  • ALT + L réduit la section dans laquelle est le curseur
  • ALT + MAJ + L ouvre la section
  • ALT + O réduit toutes les sections
  • ALT + MAJ + O ouvre toutes les sections
  • CTRL + A permet de sélectionner tout le texte du fichier
  • CTRL + I indente correctement le code sélectionné
  • CTRL + MAJ + C commente ou dé-commente la ligne active ou les lignes sélectionnées

Prise de vitesse supplémentaire : les Compléments (ou “Addins”)

Les addins sont des outils permettent d’appeler des fonctions de manière interactive, sans écrire une ligne de code pour certains. Ils permettent de modifier ou d’écrire du code directement dans l’éditeur. Certains packages en disposent, comme par exemple {styler}, ou {colourpicker}. Vous les retrouverez sous la barre de menu :

Exemple d’addin simple

Pour les personnes ayant pris l’habitude d’écrire rapidement leurs codes sans trop porter d’importance à leur lisibilité, mais qui se retrouvent un peu perdues après quelques dizaines ou centaines de lignes, l’addin Little Boxes, disponible ici dans notre dépôt Github, vous aidera à mettre en relief vos titres de script R.

Installez tout d’abord le package {littleboxes} :

devtools::install_github("ThinkR-open/littleboxes")

Démonstration :

Exemple d’addin Shiny Gadget

Je ne vais pas m’étendre ici sur ce qu’est un Shiny gadget, ce sera peut-être le sujet d’un prochain article. Aujourd’hui, on retiendra seulement qu’il s’agit d’une application Shiny lancée au sein même de qui permet entre autres de modifier ou d’écrire du code. Par exemple, l’addin Colour Picker du package {colourpicker} ouvre l’application Shiny :

Choisissez les couleurs que vous souhaitez, fermez l’application en cliquant sur le bouton Done. Dans votre code apparaît le vecteur des couleurs que vous avez sélectionnées :

c("#F22980", "#66D8DE", "#62A0FC")

Top non ?

Associer un raccourci à un addin

Bon, les addin c’est bien sympa, mais quand on en a souvent besoin, on perd encore pas mal de temps à aller le chercher dans le menu déroulant dédié. Mais on peut tout à fait associer un raccourci-clavier à l’addin que l’on souhaite. Pour cela : Tools > Modify Keyboard Shortcuts. Pour trouver plus rapidement votre addin dans la liste, tapez “addin” dans la barre de recherche. Vous pouvez ensuite modifier le raccourci et enregistrer. Mais attention, 2 choses :

  • Vérfiez bien que le raccourci créé ne correspond pas déjà à une autre action.
  • La gestion du clavier AZERTY n’ayant pas été correctement prise en charge par RStudio, attention aux raccourcis du type CTRL + qui fonctionnent rarement.

Autre atout : les snippets

Les snippets permettent également de gagner un temps fou en écrivant une partie du code automatiquement, via un mot-clé et la commande MAJ + Tab. Par exemple, j’écris :

shinyapp

MAJ + Tab et mon code devient :

library(shiny)
ui <- fluidPage(
)
server <- function(input, output, session) {
}
shinyApp(ui, server)

Il n’y a plus qu’à remplir les trous ! Génial non ? Pour voir la liste des snippets existants dans Rstudio, c’est par ici. Mais vous pouvez également créer les vôtres ou modifier les existants ! Ajoutons par exemple the BEST snippet ever qu’on vous présentait dans cet article. Pour ce faire : Tools > Global Options > Code > Edit Snippets, et ajoutez :

snippet aa
    ${1:dataset} <- ${1:dataset} %>% ${0}

Si vous développez souvent des applications Shiny notre package {shinysnippets}, présent dans le {golemverse}, fera votre bonheur, grâce à tout un tas de snippets. Pour les installer :

# installer {shinysnippets}
remotes::install_github("Thinkr-open/shinysnippets")
# installer les snippets
shinysnippets::add_snippets()

Redémarrez ensuite RStudio. Vous disposez maintenant des nouveaux snippets :

  • module :

  • observe_event
  • sidebar_page
  • with_progress

La technique du curseur multiple

Si vous avez une même opération à effectuer à plusieurs endroits dans le code, cette méthode de multiplication de curseurs peut vraiment servir ! Imaginons que vous avez oublié d’ajouter na.rm = TRUE dans vos appels aux fonctions sum et mean :

# Somme
s1 <- sum(a)
s2 <- sum(x, y)
# Moyenne
m1 <- mean(a)
m2 <- mean(x, y)

Pour créer le curseur multiple :

  • placez-vous là où vous souhaitez le premier curseur
  • maintenez CTRL + ALT enfoncées
  • cliquez à chaque endroit où vous souhaitez les autres curseurs
  • relâchez CTRL + ALT
  • vous pouvez maintenant taper ce que vous voulez !
  • pour repasser au curseur classique, cliquez n’importe où

Coool ! Plus besoin de faire des copier/coller à tout va maintenant. Je vous laisse essayer sur l’exemple ci-dessus.

Un peu plus tricky et spécifique : il est possible de renommer une variable sans passer par la fonction recherche (quant à elle accessible via CTRL + F) avec CTRL + ALT + MAJ + M (oui, ça commence à faire beaucoup) qui permettra de modifier le nom d’une variable en fonction de son contexte. Par exemple :

x <- sum(y + z)
x2 <- x^2
ma_somme <- function(x, y) {
        x + y
}

On distingue les variables qui sont dans la définition de la fonction, et celles qui se trouvent en dehors. Si je sélectionne le x de la première ligne, donc en dehors de la fonction, puis CTRL + ALT + MAJ + M : un curseur double apparait, et les x sont sélectionnés :

J’ai pu sélectionner uniquement ce qui m’intéressait ici : je peux alors modifier le nom de la variable x sans toucher à x2 ni à la variable x de ma fonction. Dans le cas où je souhaite modifier les variables à l’intérieur de la fonction, les variables du même nom en dehors de cette dernière ne sont pas modifiées. C’est fort non ?

Autre façon de programmer comme l’éclair : l’auto-complétion

J’imagine que vous connaissez déjà bien l’auto-complétion dans RStudio, mais des petites explications ne feront de mal à personne. Par défaut, la complétion de votre code se fera via :

  • Tab
  • CTRL + espace
  • après un certain temps sans rien écrire

Vous pouvez paramétrer cela dans : Tools > Global Options > Code > Completion :

Cas dans lesquels l’autocomplétion de code s’applique :

  • variables créées dans le code (compilées ou non)
  • arguments des fonctions
  • chemins
  • dans Shiny, entre ui et server pour les éléments accessibles via input$

Pour en savoir plus (en anglais) : https://support.rstudio.com/hc/en-us/articles/205273297-Code-Completion

Nouveautés de la version Pro de RStudio

Si vous disposez de la version Professionnelle de RStudio, quelques changements supplémentaires sont à noter :

  • RStudio Desktop Pro peut maintenant fonctionner comme un client de RStudio Server Pro
  • un nouveau gestionnaire d’utilisateurs sur le tableau de bord d’administration pour faciliter la gestion des utilisateurs sous licence sur RStudio Server Pro
  • petites amélioration des plugins Kubernetes et Slurm Job Launcher

En tant que partenaire certifié “Full Service RStudio”, nous vendons des licences pour les produits professionnels RStudio, et nous fournissons le support pour déployer ces outils chez vous, de manière sûre et sécurisée. Pour en savoir plus sur la version RStudio Server Pro, c’est en français et c’est par ici.

À vous de jouer !


À propos de l'auteur


Commentaires


À lire également