.Rprofile
.Rprofile - the first chunk of code executed
Section titled “.Rprofile - the first chunk of code executed”.Rprofile is a file containing R code that is executed when you launch R from the directory containing the .Rprofile file. The similarly named Rprofile.site, located in R’s home directory, is executed by default every time you load R from any directory. Rprofile.site and to a greater extend .Rprofile can be used to initialize an R session with personal preferences and various utility functions that you have defined.
Important note: if you use RStudio, you can have a separate .Rprofile in every RStudio project directory.
Here are some examples of code that you might include in an .Rprofile file.
Setting your R home directory
Section titled “Setting your R home directory”# set R_homeSys.setenv(R_USER="c:/R_home") # just an example directory# but don't confuse this with the $R_HOME environment variable.Setting page size options
Section titled “Setting page size options”options(papersize="a4")options(editor="notepad")options(pager="internal")set the default help type
Section titled “set the default help type”options(help_type="html")set a site library
Section titled “set a site library”.Library.site <- file.path(chartr("\\", "/", R.home()), "site-library")Set a CRAN mirror
Section titled “Set a CRAN mirror”local({r <- getOption("repos") r["CRAN"] <- "http://my.local.cran" options(repos=r)})Setting the location of your library
Section titled “Setting the location of your library”This will allow you to not have to install all the packages again with each R version update.
# library location.libPaths("c:/R_home/Rpackages/win")Custom shortcuts or functions
Section titled “Custom shortcuts or functions”Sometimes it is useful to have a shortcut for a long R expression. A common example of this setting an active binding to access the last top-level expression result without having to type out .Last.value:
makeActiveBinding(".", function(){.Last.value}, .GlobalEnv)Because .Rprofile is just an R file, it can contain any arbitrary R code.
Pre-loading the most useful packages
Section titled “Pre-loading the most useful packages”This is bad practice and should generally be avoided because it separates package loading code from the scripts where those packages are actually used.
See Also
Section titled “See Also”See help(Startup) for all the different startup scripts, and further aspects. In particular, two system-wide Profile files can be loaded as well. The first, Rprofile, may contain global settings, the other file Profile.site may contain local choices the system administrator can make for all users. Both files are found in the ${RHOME}/etc directory of the R installation. This directory also contains global files Renviron and Renviron.site which both can be completemented with a local file ~/.Renviron in the user’s home directory.
.Rprofile example
Section titled “.Rprofile example”Startup
Section titled “Startup”# Load library setwidth on start - to set the width automatically..First <- function() { library(setwidth) # If 256 color terminal - use library colorout. if (Sys.getenv("TERM") %in% c("xterm-256color", "screen-256color")) { library("colorout") }}Options
Section titled “Options”# Select default CRAN mirror for package installation.options(repos=c(CRAN="https://cran.gis-lab.info/"))
# Print maximum 1000 elements.options(max.print=1000)
# No scientific notation.options(scipen=10)
# No graphics in menus.options(menu.graphics=FALSE)
# Auto-completion for package names.utils::rc.settings(ipck=TRUE)Custom Functions
Section titled “Custom Functions”# Invisible environment to mask defined functions.env = new.env()
# Quit R without asking to save..env$q <- function (save="no", ...) { quit(save=save, ...)}
# Attach the environment to enable functions.attach(.env, warn.conflicts=FALSE)Remarks
Section titled “Remarks”There is a nice chapter on the matter in Efficient R programming