Takahiro
Takahiro

Reputation: 573

Reading .sav file into R

I am trying to read a .sav file into R but I got the following warning:

library("memisc")
dataset <- data.frame(as.data.set(spss.system.file("dataset.sav")))

parseSysHeader(ptr) : file lacks info_flt64 record, using defaults

Could someone tell me what this warning means and how to fix it? Any help would be appreciated.

Thank you

Takahiro

Upvotes: 47

Views: 131116

Answers (3)

Jan Marvin
Jan Marvin

Reputation: 969

Another option could be my R package readspss. The syntax is similar to the one of the foreign package. The imported data is returned as a data.frame() with attributes. The package was written from scratch and features read and write support for all SPSS files (zsav, sav and por). It was tested with a variety of SPSS files and supports reading of (hopefully) all SPSS features (e.g. encrypted and or compressed files, long strings, and all types of missings).

library(readspss)
dataset <- read.sav("dataset.sav")

Upvotes: 6

Richard Lusch
Richard Lusch

Reputation: 1190

You can also use the 'haven' package to read in the SPSS file. This package has much more consistency over the foreign package, with regard to syntax. Also, the resulting data frame will have both the 'tbl_df' and 'tbl' classes so printing will be improved if dplyr is loaded.

library(haven)

path = file.path("C:/", "Folder", "dataset.sav")
dataset = read_sav(path)

Upvotes: 71

rafa.pereira
rafa.pereira

Reputation: 13807

You can use the library foreign to import data from .sav (SPSS) format.

library(foreign)

data <- read.spss("C:/PathToFile/dataset.sav", to.data.frame=TRUE)

Upvotes: 25

Related Questions