Read SPSS (`.sav`, `.zsav`, `.por`) files. Write `.sav` and `.zsav` files.
Source:R/read_spss.R
read_spss.Rd
This is a wrapper around haven::read_spss
with some exception handling.
Usage
read_spss(
file,
user_na = TRUE,
id = NULL,
filename = NULL,
doi = NULL,
.name_repair = "unique"
)
Arguments
- file
An SPSS file.
- user_na
Should user-defined na_values be imported? Defaults to
TRUE
.- id
An identifier of the tibble, if omitted, defaults to the file name without its extension.
- doi
An optional document object identifier.
- .name_repair
Defaults to
"unique"
Seetibble::as_tibble
for details.
Value
A tibble. 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.
Details
`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.
When the SPSS file has columns which are of class labelled, but have no labels, they are read as numeric or character vectors.
See also
Other import functions:
pull_survey()
,
read_csv()
,
read_dta()
,
read_rds()
,
read_surveys()
Examples
# \donttest{
path <- system.file("examples", "iris.sav", package = "haven")
haven::read_sav(path)
#> # A tibble: 150 × 5
#> Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#> <dbl> <dbl> <dbl> <dbl> <dbl+lbl>
#> 1 5.1 3.5 1.4 0.2 1 [setosa]
#> 2 4.9 3 1.4 0.2 1 [setosa]
#> 3 4.7 3.2 1.3 0.2 1 [setosa]
#> 4 4.6 3.1 1.5 0.2 1 [setosa]
#> 5 5 3.6 1.4 0.2 1 [setosa]
#> 6 5.4 3.9 1.7 0.4 1 [setosa]
#> 7 4.6 3.4 1.4 0.3 1 [setosa]
#> 8 5 3.4 1.5 0.2 1 [setosa]
#> 9 4.4 2.9 1.4 0.2 1 [setosa]
#> 10 4.9 3.1 1.5 0.1 1 [setosa]
#> # … with 140 more rows
tmp <- tempfile(fileext = ".sav")
haven::write_sav(mtcars, tmp)
haven::read_sav(tmp)
#> # A tibble: 32 × 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 6 160 110 3.9 2.62 16.5 0 1 4 4
#> 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4
#> 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1
#> 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1
#> 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2
#> 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1
#> 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4
#> 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2
#> 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2
#> 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4
#> # … with 22 more rows
# }