Intentar leer un archivo SPSS en R. se convierte en todos los NA. Errores en el interior

StackOverflow https://stackoverflow.com/questions/8395851

  •  28-10-2019
  •  | 
  •  

Pregunta

Estoy tratando de leer un archivo SPSS en R usando Read.SPSS. Es un archivo muy grande (la encuesta mundial de valores), con aproximadamente 67k entradas.

Aquí está el código, con los errores:

> library(foreign)
> wvs = read.spss("C:/wvs2005_v20090901a.sav",to.data.frame=TRUE)
Warning messages:
1: In read.spss("C:/wvs2005_v20090901a.sav", to.data.frame = TRUE) :
C:/wvs2005_v20090901a.sav: Unrecognized record type 7, subtype 8 encountered in system file
2: In `levels<-`(`*tmp*`, value = c("Missing; Unknown", "Not asked",  :
duplicated levels will not be allowed in factors anymore
3: In `levels<-`(`*tmp*`, value = c("Missing; Unknown", "Not asked",  :
duplicated levels will not be allowed in factors anymore
4: In `levels<-`(`*tmp*`, value = c("Missing; Unknown", "Not asked",  :
duplicated levels will not be allowed in factors anymore
5: In `levels<-`(`*tmp*`, value = c("Missing; Unknown", "Not asked",  :
duplicated levels will not be allowed in factors anymore
6: In `levels<-`(`*tmp*`, value = c("Missing; Unknown", "Not asked",  :
duplicated levels will not be allowed in factors anymore
7: In `levels<-`(`*tmp*`, value = c("Missing; Unknown", "Not asked",  :
duplicated levels will not be allowed in factors anymore
8: In `levels<-`(`*tmp*`, value = c("Missing; Unknown", "Not asked",  :
duplicated levels will not be allowed in factors anymore
9: In `levels<-`(`*tmp*`, value = c("Missing; Unknown", "Not asked",  :
duplicated levels will not be allowed in factors anymore

Cualquier idea es muy apreciada.

¿Fue útil?

Solución

¿Intentaste una función diferente para leer en spss? Encontré dos:

de ?read.spssUna interfaz diferente también basada en la base de código PSPP está disponible en el paquete 'Memisc': consulte su ayuda para 'spss.system.file'.

Además, en el paquete Hmisc, hay una función spss.get, que proporciona "importación mejorada de archivos SPSS".

Recomiendo intentar Hmisc::spss.get primero.

Otros consejos

Las versiones recientes de R han cambiado de una manera que causa el error de emitir valores duplicados.

Las estadísticas de SPSS permiten que más de un valor tenga la misma etiqueta de valor (generalmente no desea hacerlo, pero ocasionalmente es útil). R, al convertir las variables en factores, puede usar las etiquetas de valor para definir los niveles de factores, y eso causa este tipo de mensaje.

Si agrega Use.Value.Labels = False en su llamada Read.SPSS, no recibirá este mensaje. Por supuesto, entonces, deberá hacer los factores usted mismo, tal vez usando niveles = en lugar de etiquetas = en factor ().

Todavía puede recibir mensajes de advertencia sobre el registro desconocido 7 subtipos. Los paquetes R no saben cómo interpretar toda la información del registro 7, por lo que se perderá. En muchos casos, eso es inofensivo, pero debe verificar sus datos para asegurarse.

Las estadísticas SPSS pueden ejecutar el código R, y proporciona API que transferirán datos entre estadísticas y R correctamente.

Hth, Jon Peck

Acabo de recordar: a menudo cuando trato de leer en un archivo SPSS obtengo el mismo error, pero sigo adelante y aún recuerdo el objeto nombrado por Read.spss y de alguna manera todo está bien.

Supongo que no has intentado hacer clic en el objeto que llamaste "WVS"

Nuevamente, intente lo que sugerí antes, pero luego llame a WVS como lo he hecho a continuación:

wvs <- read.spss("C:/wvs2005_v20090901a.sav", use.value.labels = FALSE,
           to.data.frame=TRUE)
head(wvs)

Edité de "WVS" a "Head (WVS)" porque el archivo es muy grande.

Tuve exactamente el mismo problema con los datos del sitio ESS (European Social Survey), y lo resolví siguiendo una pista en read.spss ayuda. Uso del paquete memisc En cambio, puede importar un portátil Archivo SPSS como este:

data <- as.data.set(spss.portable.file("filename.por"))

Del mismo modo, para archivos .sav:

data <- as.data.set(spss.system.file('filename.sav'))

Aunque en este caso parece perder algunos valores de cadena, mientras que la importación portátil funciona sin problemas. La página de ayuda para spss.portable.file reclamación (es:

El mecanismo del importador es más flexible y extensible que Read.SPSS y Read.DTA del paquete "Extranjero", ya que la mayor parte del análisis de los encabezados del archivo se realiza en R. También se adaptan para cargar conjuntos de datos eficientemente grandes. Lo más importante es que los objetos importadores admiten las etiquetas, faltan valores y descripciones, proporcionadas por este paquete.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top