renv

Load environment files in R

renv

R vs. Environment Variables

The twelve-factor app stores config in environment variables.

Adam Wiggins, Heroku Founder

If you want to set environment variables for your R session, you don't want to use .bashrc; use .Renviron (user) or .Renviron.site (system).

RStudio Support Ticket

Why not Renviron?

Drew's Law: If you ever have the same configuration data stored in multiple locations, at some point it will cause a headache.

Drew Lanenga

When to use?

Usage

Usage

# get variables from standard Sys.getenv call
renv::load_vars("~/.bashrc")
foo <- Sys.getenv("foo")

# alternatively, assign value at load
vars <- renv::load_vars("~/.bashrc")
foo <- vars$foo

Examples

Example: Plotly!

According to Plotly's Getting Started Guide, save this in your .Rprofile file:

Sys.setenv("plotly_username" = "your_plotly_username")
Sys.setenv("plotly_api_key" = "your_api_key")

Example: Plotly!

plotly.sh

export plotly_username=your_plotly_username
export plotly_api_key=your_api_key

plotly.R or .Rprofile

renv::load_vars("plotly.sh")

Example: Storing S3 Information

s3info.sh

export S3_ROOT=https://mybucket.s3.amazonaws.com
export S3_PATH=rawdata
export S3_URL=$S3_ROOT/$S3_PATH

read.R

vars <- renv::load_vars("s3info.sh")
mydata <- read.csv(paste0(vars$S3_URL, "/mydata.csv"))