Chapter 4 Paths and projects

Learning goals

By the end of this chapter you should be able to:

  • Explain the difference between absolute and relative paths.
  • Use relative paths in your scripts.
  • Use an RStudio Project to keep work organised.
  • Check your working directory with getwd().

Prerequisites

  • You have installed R and RStudio and created the BB852 folder described in the previous chapter.

A tiny motivating example

If the same project structure is present, this will work on any computer:

read.csv("CourseData/carnivora.csv")

If your project is not organised, you end up with long absolute paths that break when shared.


4.1 File paths in plain language

A file path is the address of a file on your computer. There are two types.

4.1.1 Absolute paths (full address)

These start from the root of your computer:

  • Windows: C:/Users/YourName/Documents/Project/myData.csv
  • macOS: /Users/YourName/Documents/Project/myData.csv

Why this is a problem: Absolute paths often differ between computers, so code containing them may break when it is shared.

4.2 Use an RStudio Project

What we’re about to do: Set a predictable working directory.

An RStudio Project creates a .Rproj file and sets the project folder as the working directory every time you open it.

4.2.1 How to create a project

  1. Use the BB852 folder you created in the previous chapter. If you have not yet created it, do that now.
  2. In RStudio, go to File > New Project.
  3. Choose Existing Directory and select your folder.
  4. Click Create Project.

From now on, open the .Rproj file (or choose the project from File > Recent Projects) to work on this course. You can tell you are working inside the project because its name, BB852, appears in the top-right corner of RStudio. You do not need to use setwd() in your scripts.

Common mistake: double-clicking an .R script to open it. This can start RStudio without the project, so the working directory is wrong and relative paths fail. Open the project first, then open the script from the Files pane.

Recommended setting: In Tools > Global Options > General, untick “Restore .RData into workspace at startup” and set “Save workspace to .RData on exit” to Never. Each session then starts clean, so your scripts (not leftover objects in memory) are the record of what you did.

Common mistake: Calling setwd() inside scripts. A path that works on your machine will often fail on somebody else’s.

Takeaway: RStudio Projects keep your paths stable and your work reproducible.


4.3 Suggested folder structure

Keep your project tidy:

  • CourseData/ for data files
  • scripts/ for code
  • plots/ for exported figures
  • writing/ for notes or reports

Try this: Create those folders now (if they do not already exist).


4.4 Key takeaways

  • Relative paths make your code shareable.
  • Relative paths start from the working directory; check it with getwd().
  • RStudio Projects set the working directory to the project folder automatically.
  • A simple folder structure saves time and confusion.

4.5 Common pitfalls recap

  • Using absolute paths in scripts.
  • Opening a script by double-clicking it, so RStudio starts outside the project.
  • Pasting Windows paths with backslashes (\).
  • Using setwd() so that a script depends on a machine-specific location.
  • Saving data and scripts in the same messy folder.

4.6 Try this

In your BB852 project, create the folders above (if you have not already), then:

  1. Check that carnivora.csv is in CourseData/.
  2. Import it using read.csv("CourseData/carnivora.csv").
  3. Write one sentence explaining why the relative path is better than the absolute one.