### This is the system Rprofile file. It is always run on startup. ### Additional commands can be placed in site or user Rprofile files ### (see ?Rprofile). ### Copyright (C) 1995-2023 The R Core Team ### Notice that it is a bad idea to use this file as a template for ### personal startup files, since things will be executed twice and in ### the wrong environment (user profiles are run in .GlobalEnv). .GlobalEnv <- globalenv() attach(NULL, name = "Autoloads") .AutoloadEnv <- as.environment(2) assign(".Autoloaded", NULL, envir = .AutoloadEnv) T <- TRUE F <- FALSE R.version <- structure(R.Version(), class = "simple.list") version <- R.version # for S compatibility ## for backwards compatibility only R.version.string <- R.version$version.string ## NOTA BENE: options() for non-base package functionality are in places like ## --------- ../utils/R/zzz.R options(keep.source = interactive()) options(warn = 0) # options(repos = c(CRAN="@CRAN@")) # options(BIOC = "http://www.bioconductor.org") ## setting from an env variable added in 4.0.2 local({to <- as.integer(Sys.getenv("R_DEFAULT_INTERNET_TIMEOUT", 60)) if (is.na(to) || to <= 0) to <- 60L options(timeout = to) }) options(encoding = "native.enc") options(show.error.messages = TRUE) ## keep in sync with PrintDefaults() in ../../main/print.c : options(scipen = 0) options(max.print = 99999)# max. #{entries} in internal printMatrix() options(add.smooth = TRUE)# currently only used in 'plot.lm' if(!interactive()) options(showErrorCalls = TRUE) options(catch.script.errors = FALSE) local({dp <- Sys.getenv("R_DEFAULT_PACKAGES") if(identical(dp, "")) ## it fact methods is done first dp <- c("datasets", "utils", "grDevices", "graphics", "stats", "methods") else if(identical(dp, "NULL")) dp <- character(0) else dp <- strsplit(dp, ",")[[1]] dp <- sub("[[:blank:]]*([[:alnum:]]+)", "\\1", dp) # strip whitespace options(defaultPackages = dp) }) ## Expand R_LIBS_* environment variables. Sys.setenv(R_LIBS_SITE = .expand_R_libs_env_var(Sys.getenv("R_LIBS_SITE"))) Sys.setenv(R_LIBS_USER = .expand_R_libs_env_var(Sys.getenv("R_LIBS_USER"))) local({ if(nzchar(tl <- Sys.getenv("R_SESSION_TIME_LIMIT_CPU"))) setSessionTimeLimit(cpu = tl) if(nzchar(tl <- Sys.getenv("R_SESSION_TIME_LIMIT_ELAPSED"))) setSessionTimeLimit(elapsed = tl) }) .First.sys <- function() { for(pkg in getOption("defaultPackages")) { res <- require(pkg, quietly = TRUE, warn.conflicts = FALSE, character.only = TRUE) if(!res) warning(gettextf('package %s in options("defaultPackages") was not found', sQuote(pkg)), call. = FALSE, domain = NA) } } ## called at C level in the startup process prior to .First.sys .OptRequireMethods <- function() { pkg <- "methods" # done this way to avoid R CMD check warning if(pkg %in% getOption("defaultPackages")) if(!require(pkg, quietly = TRUE, warn.conflicts = FALSE, character.only = TRUE)) warning('package "methods" in options("defaultPackages") was not found', call. = FALSE) } if(nzchar(Sys.getenv("R_BATCH"))) { .Last.sys <- function() { cat("> proc.time()\n") print(proc.time()) } ## avoid passing on to spawned R processes ## A system has been reported without Sys.unsetenv, so try this try(Sys.setenv(R_BATCH="")) } local({ if(nzchar(rv <- Sys.getenv("_R_RNG_VERSION_"))) suppressWarnings(RNGversion(rv)) }) .sys.timezone <- NA_character_ local({ ## create an active binding for .Library.site, so that it can be ## modified after the base environment is locked ## remove the binding in the lazyload data base .Internal(mkUnbound(as.name(".Library.site"))) siteLibrary <- character() slfun <- function(v) { if (!missing(v)) siteLibrary <<- v siteLibrary } makeActiveBinding(".Library.site", slfun, baseenv()) ## make .Library.site accessible also from global environment to ## preserve functionality of site profiles assigning to it directly ## (originally, site profiles were run in base environment) makeActiveBinding(".Library.site", slfun, globalenv()) }) ###-*- R -*- ## this will break if R is on a network share .Library <- file.path(chartr("\\", "/", R.home()), "library") .Library.site <- Sys.getenv("R_LIBS_SITE") if (!nzchar(.Library.site)) { .Library.site <- .expand_R_libs_env_var('%S') Sys.setenv(R_LIBS_SITE = .Library.site) } .Library.site <- if(.Library.site == "NULL") character() else unlist(strsplit(.Library.site, ";")) .Library.site <- .Library.site[file.exists(.Library.site)] local({ libs <- Sys.getenv("R_LIBS_USER") if (!nzchar(libs)) { libs <- .expand_R_libs_env_var('%U') Sys.setenv(R_LIBS_USER = libs) } libs <- if(libs == "NULL") character() else unlist(strsplit(libs, ";")) invisible(.libPaths(c(unlist(strsplit(Sys.getenv("R_LIBS"), ";")), libs))) }) local({ popath <- Sys.getenv("R_TRANSLATIONS", "") if(!nzchar(popath)) { paths <- file.path(.libPaths(), "translations", "DESCRIPTION") popath <- dirname(paths[file.exists(paths)][1]) } bindtextdomain("R", popath) bindtextdomain("R-base", popath) bindtextdomain("RGui", popath) assign(".popath", popath, .BaseNamespaceEnv) }) if(nzchar(Sys.getenv("R_PAPERSIZE"))) { options(papersize = Sys.getenv("R_PAPERSIZE")) } else { if(grepl("(canada|united.states)", Sys.getlocale("LC_MONETARY"), ignore.case = TRUE)) options(papersize = "letter") else options(papersize = "a4") } options(pager = if(length(grep("--ess", commandArgs()))) "console" else "internal", useFancyQuotes = (.Platform$GUI == "Rgui"), pdfviewer = Sys.getenv("R_PDFVIEWER", file.path(R.home("bin"), "open.exe"))) if(.Platform$GUI == "Rgui") Sys.setenv(GFORTRAN_STDOUT_UNIT = "-1", GFORTRAN_STDERR_UNIT = "-1") local({ br <- Sys.getenv("R_BROWSER", NA_character_) if(!is.na(br)) options(browser = br) tests_startup <- Sys.getenv("R_TESTS") if(nzchar(tests_startup)) source(tests_startup) ca_cert <- Sys.getenv("CURL_CA_BUNDLE", NA_character_) if(is.na(ca_cert) && file.exists(ca_path <- file.path(R.home("etc"), "curl-ca-bundle.crt"))) Sys.setenv(CURL_CA_BUNDLE = ca_path) }) local({ # keep in step with Rcmd_environ setRtools44Path <- 0 setRtools44Path <- 1 if (setRtools44Path) { aarch64 <- FALSE # INSTALLER-BUILD-aarch64: aarch64 <- TRUE if (aarch64) { rthome <- Sys.getenv("RTOOLS44_AARCH64_HOME", "c:/rtools44-aarch64") rtpath <- paste0(rthome, "/aarch64-w64-mingw32.static.posix/bin;", rthome, "/usr/bin") } else { rthome <- Sys.getenv("RTOOLS44_HOME", "c:/rtools44") rtpath <- paste0(rthome, "/x86_64-w64-mingw32.static.posix/bin;", rthome, "/usr/bin") } path <- Sys.getenv("R_CUSTOM_TOOLS_PATH", rtpath) Sys.setenv(R_RTOOLS44_PATH = rtpath) Sys.setenv(PATH = paste0(path, ";", Sys.getenv("PATH"))) } })