Pregunta

R Versión: 2.12.2 / OS: Windows XP

Los datos que necesito consultar y manipular se almacenan en un archivo SPSS .SAV (tamaño ~ 112MB) y tengo un conocimiento muy básico de la sintaxis SPSS. Me siento mucho más cómodo con R (y generalmente lo prefiero para la manipulación y el análisis de datos), por lo que guardé el archivo SPSS como un archivo delimitado por pestañas (tamaño ~ 85MB) e intenté consultarlo utilizando la funcionalidad del paquete RodBC.

Utilizando la aplicación 'Fuentes de datos (ODBC)' dentro del grupo de herramientas administrativas en el Panel de control de Windows, configuro una base de datos (carpeta de Windows) que tiene tablas (archivos de TAB delimitados) con el controlador de texto de Microsoft.

La tabla actual de interés tiene un campo 'Fecha' (llamado 'DateTime') donde las fechas están formateadas '%y/%m/%d'. Cuando intenté consultar la base de datos con condiciones en este campo, me devolvieron un conjunto de resultados con cero observaciones. Entonces, cambié 'DateTime' a DataType 'Caracter' y probé mi consulta nuevamente (sin éxito).

Puedo consultar con éxito la base de datos, es decir

sqlQuery(channel = cn, query = "SELECT * FROM large_table.txt", as.is = TRUE, stringsAsFactors = FALSE, max = 20)

Devuelve resultados. Las siguientes consultas devuelven los conjuntos de resultados con cero observaciones (he verificado que hay al menos un registro con el valor '2011/04/01' 'en su campo' DateTime ').

sqlQuery(channel = cn, query = "SELECT DateTime FROM large_table.txt WHERE DateTime = {d '2011-04-01'}", as.is = TRUE, stringsAsFactors = FALSE)

sqlQuery(channel = cn, query = "SELECT DateTime FROM large_table.txt WHERE DateTime = '2011/04/01'", as.is = TRUE, stringsAsFactors = FALSE)

¿Alguien puede decirme por qué el conjunto de resultados no tiene observaciones?

Cualquier sugerencia para mejorar la conexión o consulta de mi base de datos es muy apreciada. Prefiero usar el paquete RodBC en lugar de otro paquete de cuidera de base de datos, pero estoy dispuesto a probar algo nuevo si es necesario.

¿Fue útil?

Solución

Usaría el paquete 'Memisc' para esto. Configurar spss.system.file () importadores para sus 3 archivos SPSS, subconjunto utilizando la versión MEMISC para cargar en R solo las variables que se necesitan, incluido el manejo de los niveles de falta de usuarios.

Hay algunas rarezas en torno a cómo se configuran los archivos SPSS: es bastante frecuente para los archivos SPSS con variables numéricas para tener usos de usuarios establecidos, lo que puede necesitar clasificar en el extremo R en una escala de intervalo con NAS apropiado.

Otros consejos

Puede ahorrarse mucha molestia leyendo el archivo SPSS directamente en R.

library(foreign)
dat <- read.spss("filename.sav", to.data.frame=TRUE)

Esto devolverá un marco de datos. Que puede analizar utilizando todas las herramientas R normales.

Como beneficio secundario, también tendrá el texto del cuestionario en los atributos de sus datos.

Ver ?read.spss para más detalles.

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