Learn R Programming

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 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.

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.

Copy Link

Version

Install

install.packages('haven')

Monthly Downloads

615,070

Version

2.5.4

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Last Published

November 30th, 2023

Functions in haven (2.5.4)

labelled

Create a labelled vector.
labelled_spss

Labelled vectors for SPSS
read_sas

Read SAS files
as_factor

Convert labelled vectors to factors
read_spss

Read and write SPSS files
read_xpt

Read and write SAS transport files
haven-package

haven: Import and Export 'SPSS', 'Stata' and 'SAS' Files
zap_empty

Convert empty strings into missing values
zap_formats

Remove format attributes
vec_arith.haven_labelled

Internal vctrs methods
write_sas

Write SAS files
tagged_na

"Tagged" missing values
zap_missing

Zap special missings to regular R missings
zap_widths

Remove display width attributes
print_labels

Print the labels of a labelled vector
read_dta

Read and write Stata DTA files
zap_label

Zap variable labels
zap_labels

Zap value labels