Project code is easier to move when scripts build paths from named parts instead of hard-coded host locations.

Program

Play the script to choose an output folder and see the relative path update.

path_conventions.R
root <- "analysis"
folders <- c("data", "figures", "reports")
folder_index <- 
folder <- folders[folder_index]
path <- file.path(root, folder, "summary.csv")
cat(path, "\n", sep = "")
root <- "analysis"
folders <- c("data", "figures", "reports")
folder_index <- 
folder <- folders[folder_index]
path <- file.path(root, folder, "summary.csv")
cat(path, "\n", sep = "")
root <- "analysis"
folders <- c("data", "figures", "reports")
folder_index <- 
folder <- folders[folder_index]
path <- file.path(root, folder, "summary.csv")
cat(path, "\n", sep = "")
relative path A project-relative path avoids host-specific prefixes.
file.path `file.path(root, folder, "summary.csv")` joins path parts portably.
convention Named folders make output locations explicit.