haven
Overview
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 andread_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 andread_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 withas_factor()
. Special missing values are preserved. Seevignette("semantics")
for more details.Dates and times are converted to R date/time classes. Character vectors are not converted to factors.
Installation
# The easiest way to get haven is to install the whole tidyverse:
install.packages("tidyverse")
# Alternatively, install just haven:
install.packages("haven")
Usage
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")
Related work
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.
Code of Conduct
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.