Load Packages

haven

# Check if haven is already installed and if it is, load it.
if (!require(haven)){
  # If it's not intalled, then tell R to install it.
  install.packages("haven", dependencies = TRUE)
  # Once it's installed, tell R to load it.
  library(haven)
}
## Loading required package: haven

tidyverse

if (!require(tidyverse)){
  install.packages("tidyverse", dependencies = TRUE)
  library(tidyverse)
}
## Loading required package: tidyverse
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.2     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.2     ✔ tibble    3.2.1
## ✔ lubridate 1.9.2     ✔ tidyr     1.3.0
## ✔ purrr     1.0.1     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors

openxlsx

if (!require(openxlsx)){
  install.packages("openxlsx", dependencies = TRUE)
  library(openxlsx)
}
## Loading required package: openxlsx

Import data

Excel

dataset.xls <- read.xlsx("Harry Potter Data.xlsx", 
                         sheet = 1,
                         colNames = FALSE,
                         rowNames = FALSE,
                         detectDates = TRUE)

CSV

dataset.csv <- read_csv("https://osf.io/download/wtghz/")
## Rows: 124 Columns: 90
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (90): StartDate, EndDate, Status, IPAddress, Progress, Duration (in seco...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

SPSS

dataset.spss <- read_sav("Harry Potter Data.sav")

SPSS from the web

dataset.spss.web <- read_sav("https://osf.io/kd4ej/download")