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