Skip to content

Instantly share code, notes, and snippets.

@strboul
Created February 27, 2022 08:39
Show Gist options
  • Save strboul/704b73c0aa0a62e8b0a7a90f6aedc7ee to your computer and use it in GitHub Desktop.
Save strboul/704b73c0aa0a62e8b0a7a90f6aedc7ee to your computer and use it in GitHub Desktop.
# RStudio snippets
# https://support.rstudio.com/hc/en-us/articles/204463668-Code-Snippets
# BASE
snippet lib
library(${0})
snippet ifelse
ifelse(${1:condition}, ${2:yes}, ${3:no})
snippet fun
${1:name} <- function(${2:vars}) {
${0}
}
snippet for
for (${1:var} in ${2:range}) {
${0}
}
snippet while
while (${1:condition}) {
${0}
}
snippet switch
switch (${1:obj},
"${2:case}" = ${3:action}
)
snippet apply
apply(${1:array}, ${2:margin}, ${3:...})
snippet lapply
lapply(${1:list}, ${2:function})
snippet sapply
sapply(${1:list}, ${2:function})
snippet vapply
vapply(${1:list}, ${2:function}, FUN.VALUE = ${3:type}, ${4:...})
snippet do.call
do.call(${1:function}, list(${2:list}))
snippet tryCatch
tryCatch(${0}, error = function(e) paste("Failure: ", conditionMessage(e)))
# S3 OBJECT SYSTEM
snippet generic
${1:name} <- function(${2:arg}) {
UseMethod("${1:name}")
}
# R6 OBJECT SYSTEM
snippet R6Class "R6 OOP skeleton"
R6::R6Class("${1:name}",
public = list(
param = NULL,
initialize = function(param) {
self\$param <- param
}
),
private = NULL
) -> ${1:name}
# MISCELLANEOUS
snippet apr
apropos("${1:name}")
snippet help
help(package="${1:pkgname}")
snippet ts
`r paste("#", date(), "------------------------------\n")`
snippet header
`r paste("#", paste(rep("-", 75), collapse = ""), "#")`
`r paste("#")` ${1:TITLE} ----
`r paste("#", paste(rep("-", 75), collapse = ""), "#")`
${0}
snippet headerdoc
`r paste("##", paste0("/", paste(rep("_", 45), collapse = ""), "/"))`
`r paste("##")` ${1:TITLE}
`r paste("##")` - ${2:Arguments}
`r paste("##", paste0("/", paste(rep("_", 45), collapse = ""), "/"))`
# SHINY
snippet shinyapp
library(shiny)
ui <- fluidPage(
${0}
)
server <- function(input, output, session) {
}
shinyApp(ui, server)
snippet shinymodule
${1:name}UI <- function(id) {
ns <- NS(id)
tagList(
${2}
)
}
${1:name}Server <- function(input, output, session) {
}
snippet shinyprintf
observe(mmy::shinyprintf(${1:var}, text = NULL))
snippet validate
shiny::validate(
shiny::need(${1:input}, ${2:error_message})
)
snippet callModule
callModule(${1:module_server}, "${2:ui_id}")
snippet observeEvent
observeEvent(${1:input}, {
${0}
})
# DEBUGGING
snippet dbo
debugonce(${0})
snippet tb
traceback()
snippet trce
trace(${0}, edit = TRUE)
snippet trcr
trace(${0}, recover)
snippet trcb
trace(${0}, browser)
snippet trcba
trace(${1:function}, browser, ${2:at})
snippet trcun
untrace(${0})
snippet brow
browser()
snippet browe
browser(expr = {${0}})
# find options
snippet optionsf
names(options())[grep("${1:regex}", names(options()))]
snippet optionsr
options(error=recover)
snippet optionsn
options(error=NULL)
snippet optionsw
options(warn=2)
# DEVTOOLS
snippet test
devtools::test(filter = NULL)
snippet check
devtools::check()
snippet load_all
devtools::load_all()
snippet install
devtools::install()
snippet build
devtools::build()
snippet document
devtools::document()
# TESTING
snippet test_that
test_that("message", { ${0} })
# COMPILED CODE
snippet cfunction
fun <- inline::cfunction(c(x = "numeric"), '
${0}
return R_NilValue;
')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment