+ - 0:00:00
Notes for current slide
Notes for next slide

Why should I use the here package when I’m already using projects?

Blog post: https://bit.ly/whyherepkg

Malcolm Barrett

1 / 14

A Song of Fire and Workflows

2 / 14

A Song of Fire and Workflows

If the first line of your R script is

setwd("C:\Users\jenny\path\that\only\I\have")

I will come into your office and SET YOUR COMPUTER ON FIRE 🔥.

2 / 14

A Song of Fire and Workflows

If the first line of your R script is

setwd("C:\Users\jenny\path\that\only\I\have")

I will come into your office and SET YOUR COMPUTER ON FIRE 🔥.


If the first line of your R script is

rm(list = ls())

I will come into your office and SET YOUR COMPUTER ON FIRE 🔥.

2 / 14

Only you can preventive computer fires

Use RStudio projects.

Use here() from the here package to write file paths

3 / 14

Only you can preventive computer fires

Use RStudio projects.

Use here() from the here package to write file paths

4 / 14

Only you can preventive computer fires

Use RStudio projects.

Use here() from the here package to write file paths

5 / 14

Why should I use the here package when I'm already using projects?

6 / 14
here_here
|--data
|--mtcars.csv
|--figs
|--mpg_hp.png
|--rmd
|--01_read_data.Rmd
|--01_read_data.pdf
|--scripts
|--read_data.R
|--here_here.Rproj

Example Project: https://github.com/malcolmbarrett/here_here

7 / 14
here_here
|--data
|--mtcars.csv
|--figs
|--mpg_hp.png
|--rmd
|--01_read_data.Rmd
|--01_read_data.pdf
|--scripts
|--read_data.R
|--here_here.Rproj

Example Project: https://github.com/malcolmbarrett/here_here

8 / 14

here works from the project root up

9 / 14

In rmd/01_read_data.Rmd:

library(tidyverse)
read_csv("data/mtcars.csv")
10 / 14

In rmd/01_read_data.Rmd:

library(tidyverse)
read_csv("data/mtcars.csv")
## Error: 'data/mtcars.csv' does not exist in current working directory
10 / 14
library(here)
read_csv(here("data", "mtcars.csv"))
11 / 14
library(here)
read_csv(here("data", "mtcars.csv"))
## # A tibble: 32 x 11
## mpg cyl disp hp drat wt qsec vs am gear carb
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4
## 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4
## 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1
## 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1
## 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2
## 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1
## 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4
## 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2
## 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2
## 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4
## # … with 22 more rows
11 / 14

here bottles up several best practices

12 / 14
  1. Use RStudio Projects
  2. 🔥Avoid setwd("/absolute/paths") and rm(list = ls())🔥
  3. Use here::here() to work from the project up
13 / 14

malcolmbarrett

@malco_barrett

Blog post: https://bit.ly/whyherepkg

Slides created via the R package xaringan.

14 / 14

A Song of Fire and Workflows

2 / 14
Paused

Help

Keyboard shortcuts

, , Pg Up, k Go to previous slide
, , Pg Dn, Space, j Go to next slide
Home Go to first slide
End Go to last slide
Number + Return Go to specific slide
b / m / f Toggle blackout / mirrored / fullscreen mode
c Clone slideshow
p Toggle presenter mode
t Restart the presentation timer
?, h Toggle this help
Esc Back to slideshow