2010-09-03 90 views

Respuesta

2

reclamaciones a la importación y exportación de SPSS en una variedad de formatos, como lo hace el R statistical suite. Nunca he tratado con los datos de SPSS, por lo que no puedo hablar de sus méritos relativos.

3

SPSS tiene una amplia integración con Python, pero está destinado a ser utilizado con SPSS (ahora conocido como IBM SPSS Statistics). Hay un controlador ODBC de SPSS que podría usarse con el soporte ODBC de Python para leer un archivo sav.

+0

O simplemente podría guardarlo en el formato que desee utilizando Python desde dentro de SPSS, supongo? Ambas soluciones requieren que 'joon' tenga acceso a SPSS (que es bastante costoso AFAIK). – JanC

1

Para ser claros, el controlador ODBC de SPSS no requiere una instalación de SPSS.

1

Usted podría tener Python hacer una llamada externa a spssread, un script en Perl que da salida al contenido de los archivos de SPSS en la forma que desee.

3

Opción 1 Como rkbarney señaló, no está disponible a través de PyPI la savReaderWriter Python. Me he encontrado con dos problemas:

  1. Se basa en una gran cantidad de bibliotecas adicionales más allá de la implementación aparentemente pura de Python. Los archivos SPSS son leídos y escritos en casi todos los casos por los módulos de E/S SPSS proporcionados por IBM. Estos módulos difieren según la plataforma y, en mi experiencia, "pip install savReaderWriter" no los hace salir de la caja (en OS X).
  2. El desarrollo en savReaderWriter es, aunque no está muerto, menos actualizado de lo que cabría esperar. Esto complica el primer problema. Se basa en algunos paquetes obsoletos para aumentar la velocidad y da algunas advertencias cada vez que importas savReaderWriter si no están disponibles. Hoy no es un gran problema, pero podría ser un problema en el futuro, ya que IBM continúa actualizando los módulos de E/S de SPSS para gestionar nuevos formatos de SPSS (ya están en la versión 21 o 22 si la memoria funciona).

Opción 2 he optado por utilizar R como un intermediario. Usando rpy2, configuré una función simple para leer el archivo en un marco de datos R y lo volví a sacar como un archivo CSV que luego importé a python. Es un poco rube-goldberg pero funciona. Por supuesto, esto requiere R, que también puede ser una tarea difícil de instalar en su entorno (y tiene diferentes binarios para diferentes plataformas).

+0

John, sería tan amable de publicar (en una esencia de GitHub o en pastebin.com) el código en su enfoque basado en rpy2? Estoy luchando con este problema http://stackoverflow.com/q/36287936/1389110, y su enfoque puede ayudar. – Pyderman

Cuestiones relacionadas