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. read_spss is an alias for read_sav.

read_sav(file, user_na = FALSE)

read_por(file, user_na = FALSE)

write_sav(data, path)

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

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.

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.

Examples

path <- system.file("examples", "iris.sav", package = "haven") read_sav(path)
#> # A tibble: 150 x 5 #> Sepal.Length Sepal.Width Petal.Length Petal.Width Species #> <dbl> <dbl> <dbl> <dbl> <dbl+lbl> #> 1 5.10 3.50 1.40 0.200 1 #> 2 4.90 3.00 1.40 0.200 1 #> 3 4.70 3.20 1.30 0.200 1 #> 4 4.60 3.10 1.50 0.200 1 #> 5 5.00 3.60 1.40 0.200 1 #> 6 5.40 3.90 1.70 0.400 1 #> 7 4.60 3.40 1.40 0.300 1 #> 8 5.00 3.40 1.50 0.200 1 #> 9 4.40 2.90 1.40 0.200 1 #> 10 4.90 3.10 1.50 0.100 1 #> # ... with 140 more rows
tmp <- tempfile(fileext = ".sav") write_sav(mtcars, tmp) read_sav(tmp)
#> # A tibble: 32 x 11 #> mpg cyl disp hp drat wt qsec vs am gear carb #> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> #> 1 21.0 6.00 160 110 3.90 2.62 16.5 0 1.00 4.00 4.00 #> 2 21.0 6.00 160 110 3.90 2.88 17.0 0 1.00 4.00 4.00 #> 3 22.8 4.00 108 93.0 3.85 2.32 18.6 1.00 1.00 4.00 1.00 #> 4 21.4 6.00 258 110 3.08 3.22 19.4 1.00 0 3.00 1.00 #> 5 18.7 8.00 360 175 3.15 3.44 17.0 0 0 3.00 2.00 #> 6 18.1 6.00 225 105 2.76 3.46 20.2 1.00 0 3.00 1.00 #> 7 14.3 8.00 360 245 3.21 3.57 15.8 0 0 3.00 4.00 #> 8 24.4 4.00 147 62.0 3.69 3.19 20.0 1.00 0 4.00 2.00 #> 9 22.8 4.00 141 95.0 3.92 3.15 22.9 1.00 0 4.00 2.00 #> 10 19.2 6.00 168 123 3.92 3.44 18.3 1.00 0 4.00 4.00 #> # ... with 22 more rows