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()
: - 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 :
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)
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 :
À vous de jouer maintenant !
Plus de tips’n tricks pour programmer plus vite en R ? C’est ici !
Laisser un commentaire