Comment utiliser les snippets RStudio ?

when your typing game is on point
Auteur : Elena Salette
Tags : Actualités, Ressources
Date :

Dans RStudio, les snippets sont une fonctionnalité qui permet d’insérer du texte dans votre code, de manière automatique et intuitive. C’est un peu comme de la super-complétion.

 

On vous en parlait déjà dans notre article “Profiter pleinement de RStudio (et de ses nouveautés) et programmer comme l’éclair“, les snippets vous permettent de gagner du temps en écrivant une partie du code automatiquement. Ces “code snippets” sont présentés brièvement en anglais dans cette page Rstudio. On vous les présente ici en français.

Comment activer et utiliser les snippets ?

Pour activer un snippet, vous devez écrire le mot-clé indiqué dans le corps de votre code puis tapez la combinaison de touches MAJ + Tab (ou Tab).
Le curseur de l’invite de commande se met directement à l’endroit où vous pouvez ajouter votre code. Lorsqu’il y a plusieurs zones à remplir, comme pour le snippet “fun” que vous allez découvrir juste après, vous pouvez vous déplacer d’une zone de texte à l’autre avec la touche tabulation TAB.

Les snippets par défaut dans RStudio

Les snippets de déclaration

  • lib
library(package)
  • req
require(package)
  • fun
name <- function(variables) {
}
  • ret
return(code)
  • mat
matrix(data, nrow = rows, ncol = cols)

Les snippets de boucles

  • for
for (variable in vector) {
}
  • while
while (condition) {
}
  • switch
switch (object,
  case = action
)

Les snippets conditionnels

  • if
if (condition) {
}
  • el
else {
}
  • ei
else if (condition) {
}

Les snippets de la famille apply

  • apply
apply(array, margin, ...)
  • lapply
lapply(list, function)
  • sapply
sapply(list, function)
  • mapply
mapply(function, ...)
  • vapply
vapply(list, function, FUN.VALUE = type, ...)

Les snippets des classes S4

  • sc
setClass("Class", slots = c(name = "type"))
  • sm
setMethod("generic", class, function(class) {
})
  • sg
setGeneric("generic", function(x, ...) {
  standardGeneric("generic")
})

Le snippet pour les applications Shiny

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

Pour plus de snippets adaptés à vos applications Shiny, installez notre package {shinysnippets} :

# installer {shinysnippets}
remotes::install_github("Thinkr-open/shinysnippets")
# installer les snippets
shinysnippets::add_snippets() Redémarrez ensuite RStudio. Vous disposez maintenant des nouveaux snippets :
  • mod pour créer un module :

  • obser pour créer un observeEvent():Utilisation du snippet du package shinysnippet pour la fonction observeEvent
  • sidebar_page pour créer une page avec barre latérale

Créez vos propres snippets

Commencez par ouvrir l’éditeur de snippets : Tools > Global Options > Code > Edit Snippets :

Liste des snippets Rstudio

Exemple : un snippet pour faire une carte leafet avec un fond de carte et un zoom

J’ajoute le snippet leaf dans l’éditeur, sous les autres :

snippet leaf
    leaflet() %>%
        addTiles(${1:tilename}) %>%
        setView(lng = $(2:lon), lat = $(3:lat), zoom = $(4:zoom))

Après avoir enregistré les snippets, lorsque j’écris leaf dans la console ou un fichier R, et que je tape CTRL + Tab, le code suivant s’écrit :

leaflet() %>%
  addTiles(tilename) %>%
  setView(lng = lon, lat = lat, zoom = zoom)

Utilisation d'un snippet Rstudio pour leaflet

Exemple : un snippet pour utiliser tryCatch

Ajout du snippet tc dans l’éditeur de snippets :

snippet tc
    ${1:variable} <- tryCatch(
        ${2:expr},
        error = function(c) {
            message(paste0("Error in ", ${2:expr}))
            ${3:expr_error}
        },
        warning = function(c) ${4:expr_warning},
        message = function(c) ${5:expr_message}
    )

Le code ci-dessous apparait :

variable <- tryCatch(
  expr,
  error = function(c) {
    message(paste0("Error in ", expr))
    expr_error
  },
  warning = function(c) expr_warning,
  message = function(c) expr_message
)

Avoir utilisé ${2:expr} à deux reprises dans le snippet me permet d’écrire la même chose aux deux endroits simultanément :

Utilisation d'un snippet Rstudio avec valeur en double

À vous de jouer maintenant !

Plus de tips’n tricks pour programmer plus vite en R ? C’est ici !


À propos de l'auteur


Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *


À lire également

Nos formations Certifiantes à R sont finançables à 100% via le CPF

Nos formations disponibles via moncompteformation.gouv.fr permettent de délivrer des Certificats reconnues par l’état, enregistrées au répertoire spécifique de France Compétences. 3 niveaux de certifications existent :

Contactez-nous pour en savoir plus.

Calendrier

04/06/2024

14/05/2024

14/05/2024