Introducción a programas Python

El Python® para IBM® SPSS® Statistics le permite crear programasPython que controlan el flujo de trabajos de sintaxis de comandos, leen y escriben datos y crean procedimientos personalizados que generan su propia salida de tabla dinámica. Esta característica requiere IBM SPSS Statistics -Complemento de integración para Python, que se instala de forma predeterminada con el producto IBM SPSS Statistics .

Hay disponible una interfaz complementaria para crear scriptsPython que operan en la interfaz de usuario de IBM SPSS Statistics y manipulan objetos de salida. Consulte el tema Introducción a los scripts de Python para obtener más información.

Las características de programación de Python descritas aquí están disponibles dentro de los bloques de programa de BEGIN PROGRAM-END PROGRAM en la sintaxis de comandos. Un bloque de programa proporciona acceso a todas las funciones del lenguaje de programación Python , incluidas las funciones específicas de IBM SPSS Statistics y que se proporcionan en Python Integration Package for IBM SPSS Statistics. Puede utilizar bloques de programa para combinar las características de programabilidad de Python con todas las prestaciones de IBM SPSS Statistics creando series de sintaxis de comandos que luego ejecuta IBM SPSS Statistics.

También puede ejecutar IBM SPSS Statistics desde un proceso Python externo, como un IDE de Python o el intérprete de Python . Consulte el tema Ejecución de IBM SPSS Statistics desde un proceso Python externo para obtener más información.

Dentro de un bloque de programa, Python tiene el control y no sabe nada sobre los mandatos IBM SPSS Statistics . Cuando se carga el paquete de integración de Python para IBM SPSS Statistics , Python conoce las funciones proporcionadas en el paquete, pero los mandatos estándar de IBM SPSS Statistics básicamente no son válidos dentro de un bloque de programa. Por ejemplo:

BEGIN PROGRAM PYTHON3.
FREQUENCIES VARIABLES=var1, var2, var3.
END PROGRAM.

generará un error, porque Pythonno reconoce FREQUENCIES . Pero puesto que el objetivo de un bloque de programa suele ser generar una sintaxis de comandos que IBM SPSS Statistics puede comprender, debe haber una forma de especificar la sintaxis de comandos dentro de un bloque de programas. Esto se realiza expresando mandatos de sintaxis, o partes de mandatos, como series de caracteres, como en:

spss.Submit("FREQUENCIES VARIABLES=var1, var2, var3.")

El poder real de los bloques de programa proviene de la capacidad de construir dinámicamente series de sintaxis de comandos, como en:

BEGIN PROGRAM PYTHON3.
import spss
string1="DESCRIPTIVES VARIABLES="
N=spss.GetVariableCount()
scaleVarList=[]
for i in range(N):
  if spss.GetVariableMeasurementLevel(i)=='scale':
    scaleVarList.append(spss.GetVariableName(i))
string2="."
spss.Submit([string1, ' '.join(scaleVarList), string2])
END PROGRAM.
  • spss.GetVariableCount devuelve el número de variables del conjunto de datos activo.
  • if spss.GetVariableMeasurementLevel(i)=="scale" es verdadero sólo para variables con un nivel de medición de escala.
  • scaleVarList.append(spss.GetVariableName(i)) crea una lista de nombres de variable que incluye sólo aquellas variables con un nivel de medición de escala.
  • spss.Submit envía un mandato DESCRIPTIVES a IBM SPSS Statistics que tiene un aspecto similar al siguiente:
DESCRIPTIVES VARIABLES=
scalevar1 scalevar2 scalevar3...etc.
.