R: Read SPSS ('.sav', '.zsav', '.por') files. Write '.sav' and...

read_spss {haven} | R Documentation

## Read SPSS (`.sav`, `.zsav`, `.por`) files. Write `.sav` and `.zsav` files.

### Description

`read_sav()` reads both `.sav` and `.zsav` files; `write_sav()` creates `.zsav` files when `compress = TRUE`. `read_por()` reads `.por` files. `read_spss()` uses either `read_por()` or `read_sav()` based on the file extension.

### Usage

    read_sav(file, encoding = NULL, user_na = FALSE)

    read_por(file, user_na = FALSE)

    write_sav(data, path, compress = FALSE)

    read_spss(file, user_na = FALSE)

### Arguments

`file` | Either a path to a file, a connection, or literal data (either a single string or a raw vector). Files ending in `.gz`, `.bz2`, `.xz`, or `.zip` will be automatically uncompressed. Files starting with `http://`, `https://`, `ftp://`, or `ftps://` will be automatically downloaded. Remote gz files can also be automatically downloaded and decompressed. Literal data is most useful for examples and tests. It must contain at least one new line to be recognised as data (instead of a path).
`encoding` | The character encoding used for the file. The default, `NULL`, use the encoding specified in the file, but sometimes this value is incorrect and it is useful to be able to override it.
`user_na` | If `TRUE` variables with user defined missing will be read into `labelled_spss()` objects. If `FALSE`, the default, user-defined missings will be converted to `NA`.
`data` | Data frame to write.
`path` | Path to a file where the data will be written.
`compress` | If `TRUE`, will compress the file, resulting in a `.zsav` file.

### Details

Currently haven can read and write logical, integer, numeric, character and factors. See `labelled_spss()` for how labelled variables in SPSS are handled in R.

### Value

A tibble, data frame variant with nice defaults.

Variable labels are stored in the "label" attribute of each variable. It is not printed on the console, but the RStudio viewer will show it.

`write_sav()` returns the input `data` invisibly.

### Examples

    path <- system.file("examples", "iris.sav", package = "haven")
    read_sav(path)

    tmp <- tempfile(fileext = ".sav")
    write_sav(mtcars, tmp)
    read_sav(tmp)

[Package haven version 2.1.0 Index]