Haven enables R to read and write various data formats used by other statistical packages by wrapping the fantastic ReadStat C library written by Evan Miller. Haven is part of the tidyverse. Currently it supports:
SAS: read_sas()
reads .sas7bdat
+ .sas7bcat
files and read_xpt()
reads SAS transport files (versions 5 and 8). write_xpt()
writes SAS transport files (versions 5 and 8).
SPSS: read_sav()
reads .sav
files and read_por()
reads the older .por
files. write_sav()
writes .sav
files.
Stata: read_dta()
reads .dta
files (up to version 15). write_dta()
writes .dta
files (versions 8-15).
The output objects:
Are tibbles, which have a better print method for very long and very wide files.
Translate value labels into a new labelled()
class, which preserves the original semantics and can easily be coerced to factors with as_factor()
. Special missing values are preserved. See vignette("semantics")
for more details.
Dates and times are converted to R date/time classes. Character vectors are not converted to factors.
# The easiest way to get haven is to install the whole tidyverse:
install.packages("tidyverse")
# Alternatively, install just haven:
install.packages("haven")
library(haven)
# SAS
read_sas("mtcars.sas7bdat")
write_xpt(mtcars, "mtcars.xpt")
# SPSS
read_sav("mtcars.sav")
write_sav(mtcars, "mtcars.sav")
# Stata
read_dta("mtcars.dta")
write_dta(mtcars, "mtcars.dta")
foreign reads from SAS XPORT, SPSS, and Stata (up to version 12) files.
readstat13 reads from and writes to all Stata file format versions.
sas7bdat reads from SAS7BDAT files.
Please note that the haven project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.