Comment utiliser les snippets RStudio ?

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


À lire également