R_user_dir <- function (package, which = c("data", "config", "cache")) {
stopifnot(is.character(package), length(package) == 1L)
which <- match.arg(which)
home <- normalizePath("~")
path <- switch(which, data = {
if (nzchar(p <- Sys.getenv("R_USER_DATA_DIR"))) p
else if (nzchar(p <- Sys.getenv("XDG_DATA_HOME"))) p
else if (.Platform$OS.type == "windows") file.path(Sys.getenv("APPDATA"), "R", "data")
else if (Sys.info()["sysname"] == "Darwin") file.path(home, "Library", "Application Support", "org.R-project.R")
else file.path(home, ".local", "share")
}, config = {
if (nzchar(p <- Sys.getenv("R_USER_CONFIG_DIR"))) p
else if (nzchar(p <- Sys.getenv("XDG_CONFIG_HOME"))) p
else if (.Platform$OS.type == "windows") file.path(Sys.getenv("APPDATA"), "R", "config")
else if (Sys.info()["sysname"] == "Darwin") file.path(home, "Library", "Preferences", "org.R-project.R")
else file.path(home, ".config")
}, cache = {
if (nzchar(p <- Sys.getenv("R_USER_CACHE_DIR"))) p
else if (nzchar(p <- Sys.getenv("XDG_CACHE_HOME"))) p
else if (.Platform$OS.type == "windows") file.path(Sys.getenv("LOCALAPPDATA"), "R", "cache")
else if (Sys.info()["sysname"] == "Darwin") file.path(home, "Library", "Caches", "org.R-project.R")
else file.path(home, ".cache")
})
file.path(path, "R", package)
}
rand_string <- function(length = 50){
# Must use completely randomized rad string such that set.seed won't work
ret <- as.character(openssl::aes_keygen(length = ceiling(length / 2)))
ret <- paste(ret, collapse = "")
ret <- stringr::str_sub(ret, end = length)
ret
}
stopifnot2 <- function(..., msg = 'Condition not satisfied'){
if(!all(c(...))){
stop(msg)
}
}
dir_create2 <- function(x, showWarnings = FALSE, recursive = TRUE, check = TRUE, ...) {
if (!dir.exists(x)) {
dir.create(x, showWarnings = showWarnings, recursive = recursive, ...)
}
if (check && !dir.exists(x)) {
stop('Cannot create directory at ', shQuote(x))
}
invisible(normalizePath(x))
}
attached_packages <- function(include_base = FALSE){
info <- utils::sessionInfo()
bk <- rev(info$basePkgs)
pk <- vapply(info$otherPkgs, '[[', 'Package', 'Package', USE.NAMES = FALSE)
pk <- rev(pk)
if(include_base){
pk <- c(bk, pk)
}
pk
}
get_os <- function(){
if("windows" %in% .Platform$OS.type){
return("windows")
}
os <- stringr::str_to_lower(R.version$os)
if(stringr::str_detect(os, '^darwin')){
return('darwin')
}
if(stringr::str_detect(os, '^linux')){
return('linux')
}
if(stringr::str_detect(os, '^solaris')){
return('solaris')
}
if(stringr::str_detect(os, '^win')){
return('windows')
}
return('unknown')
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.