una tabla subir studio not leer importar exportar desde datos como archivo abrir r spss

tabla - Lee el archivo SPSS en R



leer csv en r (14)

Estoy tratando de aprender R y quiero traer un archivo SPSS, que puedo abrir en SPSS.

He intentado usar read.spss desde foreign y spss.get desde Hmisc . Ambos mensajes de error son iguales.

Aquí está mi código:

## install.packages("Hmisc") library(foreign) ## change the working directory getwd() setwd(''C:/Documents and Settings/BTIBERT/Desktop/'') ## load in the file ## ?read.spss asq <- read.spss(''ASQ2010.sav'', to.data.frame=T)

Y el error resultante:

Error en read.spss ("ASQ2010.sav", to.data.frame = T): error al leer el encabezado del archivo del sistema Además: Mensaje de advertencia: en read.spss ("ASQ2010.sav", to.data.frame = T): ASQ2010.sav: posición 0: carácter `/ 000 ''(

Además, traté de guardar el archivo SPSS como un archivo .sav de SPSS 7 (anteriormente estaba usando SPSS 18).

Mensajes de advertencia: 1: en read.spss ("ASQ2010_test.sav", to.data.frame = T): ASQ2010_test.sav: tipo de registro 7 no reconocido, subtipo 14 encontrado en el archivo de sistema 2: en read.spss ("ASQ2010_test. sav ", to.data.frame = T): ASQ2010_test.sav: registro no reconocido tipo 7, subtipo 18 encontrado en el archivo del sistema


¡Para mí funciona bien usando memisc!

install.packages("memisc") load(''memisc'') Daten.Februar <-as.data.set(spss.system.file("NPS_Februar_15_Daten.sav")) names(Daten.Februar)


1)

He encontrado que el programa, transferencia de estadísticas, es útil para importar archivos spss y stata en R.

Resuelve el problema que menciona al convertir spss a R conjunto de datos. También es muy útil para subdividir conjuntos de datos supergrandes en porciones más pequeñas consumibles por R. No es gratis, pero es una herramienta muy útil para trabajar con conjuntos de datos de diferentes programas, especialmente si no tiene acceso a ellos.

2)

El paquete Memisc también tiene una función spss que vale la pena probar.


Desactiva tu UNICODE en SPSS

Abra SPSS sin ningún dato abierto y ejecute el siguiente código en su editor de sintaxis

SET UNICODE OFF.

Abra el conjunto de datos y vuelva a guardarlo para eliminar el Unicode

read.spss(''yourdata.sav'', to.data.frame=T) funciona correctamente luego


El read.spss parece estar desactualizado un poco, así que usé el paquete llamado memisc .

Para que esto funcione, haz esto:

install.packages("memisc") data <- as.data.set(spss.system.file(''yourfile.sav''))


En mi caso, esta advertencia se combinó con la aparición de una nueva variable antes de la primera columna de mis datos con los valores -100, 2, 2, 2, ..., un cambio en la correspondencia entre etiquetas y valores y la eliminación de los últimos variable. Una solución que funcionaba (usando SPSS) para crear una nueva variable de volcado en la última columna del archivo, llenarlo con valores aleatorios y ejecutar el siguiente código: (filename es la ruta al archivo sav y en mi caso el SPSS original) el archivo tenía 62 columnas, por lo tanto 63 con la variable tonta adicional)

library(memisc) data <- as.data.set(spss.system.file(filename)) copyofdata = data for(i in 2:63){ names(data)[i] <- names(copyofdata)[i-1] } data[[1]] <- NULL newcopyofdata = data for(i in 2:62){ labels(data[[i]]) <- labels(newcopyofdata[[i-1]]) } labels(data[[1]]) <- NULL

Espero que el código anterior ayude a otra persona.


Estoy de acuerdo con @SDahm en que el paquete de haven sería el camino a seguir. Yo mismo he luchado un poco con los valores de las cuerdas cuando comencé a usarlo, así que pensé en compartir mi enfoque al respecto también.

La viñeta de "semántica" contiene información útil sobre este tema.

library(tidyverse) library(haven) # Some interesting information in here vignette(''semantics'') # Get data from spss file df <- read_sav(path_to_file) # get value labels df <- map_df(.x = df, .f = function(x) { if (class(x) == ''labelled'') as_factor(x) else x}) # get column names colnames(df) <- map(.x = spss_file, .f = function(x) {attr(x, ''label'')})


No hay tal problema con los paquetes que está usando. El único requisito para leer un archivo spss es colocar el archivo en un archivo de formato PORTÁTIL. Quiero decir, el archivo spss tiene la extensión * .sav. Necesita transformar su archivo spss en un documento portátil que use la extensión * .por.

Hay más información en http://www.statmethods.net/input/importingdata.html


Otra solución que no se menciona aquí es leer datos de SPSS en R a través de ODBC. Necesitas:

  1. Controlador de archivo de datos de IBM SPSS Statistics . El controlador autónomo es suficiente.
  2. Importar datos de SPSS utilizando el paquete RODBC en R.

Vea el ejemplo aquí . Sin embargo, debo admitir que podría haber problemas con archivos de datos muy grandes.


Parece que la implementación de R read.spss está incompleta o rota. R2.10.1 lo hace mejor que R2.8.1, sin embargo. Parece que R se enoja por los atributos personalizados en un archivo sav incluso con 2.10.1 (Lo último que tengo). R también puede no entender el campo de codificación de caracteres en el archivo y, en particular, probablemente no funcione con los archivos Unicode de SPSS.

Puede intentar abrir el archivo en SPSS, eliminar cualquier atributo personalizado y volver a guardar el archivo. Puede ver si hay atributos personalizados con el comando SPSS

mostrar atributos

De ser así, elimínelos (consulte los comandos ATREVAR ATRIBUTO VARIABLE y ATRIBUIR A DATOS) y vuelva a intentarlo.

HTH, Jon Peck


Puede leer el archivo SPSS desde R usando las soluciones anteriores o la que está usando actualmente. Solo asegúrese de que el comando se alimenta con el archivo, que puede leerse correctamente. Tenía el mismo error y el problema era que SPSS no podía acceder a ese archivo. Debe asegurarse de que la ruta del archivo sea correcta, que el archivo esté accesible y que tenga el formato correcto.

library(foreign) asq <- read.spss(''ASQ2010.sav'', to.data.frame=TRUE)

En lo que respecta al mensaje de advertencia , no afecta los datos. El tipo de registro 7 se usa para almacenar funciones en el software SPSS más nuevo para que el software SPSS anterior pueda leer datos nuevos. Pero no afecta los datos. Lo he usado muchas veces y los datos no se pierden.

También puede leer sobre esto en http://r.789695.n4.nabble.com/read-spss-warning-message-Unrecognized-record-type-7-subtype-18-encountered-in-system-file-td3000775.html#a3007945


Sé que esta publicación es antigua, pero también tuve problemas para cargar un archivo Qualtrics SPSS en el código read.spss de R. R que venía de PSPP hace mucho tiempo y que no se ha actualizado desde hace tiempo. (Y el código de Hmisc también usa read.spss (), así que no tuvimos suerte allí).

La buena noticia es que PSPP 0.6.1 debe leer bien los archivos, siempre que especifique un "Ancho de cadena" de "Corto - 255 (SPSS 12.0 y anterior)" en la página "Descargar datos" en Qualtrics. Léelo en PSPP, guarde una nueva copia y usted debería estar en el negocio. Torpe, pero libre.

,


Si tiene acceso a SPSS, guarde el archivo como .csv, por lo tanto, impórtelo con read.csv o read.table . No recuerdo ningún problema con la importación de archivos .sav. Hasta ahora funcionaba como un hechizo con read.spss y spss.get . Creo que spss.get no dará resultados diferentes, ya que depende de foreign::read.spss

¿Puede proporcionarnos información sobre SPSS / R / Hmisc / versión extranjera?


También puedes probar esto:

setwd("C:/Users/rest of your path") library(haven) data <- read_sav("data.sav")

y si quieres leer todos los archivos de una carpeta:

temp <- list.files(pattern = "*.sav") read.all <- sapply(temp, read_sav)


Tuve un problema similar y lo resolví siguiendo una pista en la ayuda de read.spss . Utilizando package memisc en memisc lugar, puede importar un archivo SPSS portátil 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 que omito algunos valores de cadena, mientras que la importación portátil funciona a la perfección. La página de ayuda para reclamos spss.portable.file :

El mecanismo importador es más flexible y extensible que read.spss y read.dta del paquete "foreign", ya que la mayor parte del análisis de los encabezados de los archivos se realiza en R. También están adaptados para cargar eficientemente grandes conjuntos de datos. Lo que es más importante, los objetos importadores admiten las etiquetas, los valores faltantes y las descripciones proporcionadas por este paquete.