syntax - una - Sintaxis de SPSS: use la ruta del archivo
sintaxis spss español (2)
En v21, el complemento (gratuito) de Python es una descarga por separado. Está completamente integrado en v22.
Con Python y R Essentials, obtiene un conjunto de comandos de extensión que funcionan como comandos nativos, incluida una interfaz de cuadro de diálogo. Una que puede serle útil es STATS OPEN PROJECT. Le permite definir un proyecto o conjunto de proyectos relacionados y cargar o ejecutar automáticamente archivos auxiliares al inicio o al invocar el comando.
En v21-22, debe instalarlo desde el sitio web de la comunidad de SPSS. Más detalles disponibles si es necesario.
Evitaría el comando INCLUDE, por cierto. Use el comando INSERT más nuevo. Puede hacer algunos trucos de directorio para usted.
Tengo un montón de datos de SPSS y archivos de sintaxis que me estoy moviendo, cambiando carpetas a diario. Sin embargo, las rutas relativas siguen siendo las mismas. ¿Hay alguna manera de hacer uso de este hecho? por ejemplo: use el comando INCLUDE y haga referencia a un archivo de sintaxis que siempre tiene un nivel de ruta arriba; o use GET para abrir un archivo, ubicado dos niveles arriba
Buscando en Google Encontré alguna referencia al comando HOST, pero no conseguí que funcionara.
Cualquier comentario sería apreciado :)
Muchas gracias por adelantado
Puede obtener la ruta relativa de una sintaxis de SPSS (siempre que se guarde) utilizando python.
SpssClient.GetDesignatedSyntaxDoc().GetDocumentPath()
A partir de esto, puede navegar a la carpeta que desee utilizando el módulo os
pitones (o de otro modo). A continuación se muestra un ejemplo de cómo recuperar la ubicación del archivo guardado de la sintaxis y luego también los siguientes dos niveles. También devuelve una macro que contiene las rutas de carpeta relevantes almacenadas como cadenas para que luego puedan usarse en comandos de SPSS (como GET, INCLUDE y otros).
* Run this in any saved SPSS syntax to test *.
begin program.
import spss,spssaux,SpssClient, os
SpssClient.StartClient()
synPathL0U = os.path.dirname(SpssClient.GetDesignatedSyntaxDoc().GetDocumentPath())
SpssClient.StopClient()
synPathL1U=os.path.dirname(synPathL0U)
synPathL2U=os.path.dirname(synPathL1U)
print "synPathL0U =",synPathL0U
print "synPathL1U =",synPathL1U
print "synPathL2U =",synPathL2U
spss.SetMacroValue("!synPathL0U",spssaux._smartquote(synPathL0U+"//"))
spss.SetMacroValue("!synPathL1U",spssaux._smartquote(synPathL1U+"//"))
spss.SetMacroValue("!synPathL2U",spssaux._smartquote(synPathL2U+"//"))
end program.
/* Check results - Echo should relay back the desired folder paths */.
echo !synPathL0U.
echo !synPathL1U.
echo !synPathL2U.
Una buena manera de implementar esto para envolverlo todo en un pequeño comando de extensión personalizado , para evitar esta repetición en todas sus sintaxis.
Para hacerlo, es fácil copiar el código de arriba entre BEGIN PROGRAM
/ END PROGRAM
en una función Run(args)
a un archivo python llamado, digamos, SET_JOB_CWD.py
. El nombre asignado al archivo aquí es relevante y será lo que se utilizará más adelante para llamar a este comando de extensión.
Entonces SET_JOB_CWD.py
contendría:
def Run(args):
import spss,spssaux,SpssClient, os
SpssClient.StartClient()
synPathL0U = os.path.dirname(SpssClient.GetDesignatedSyntaxDoc().GetDocumentPath())
SpssClient.StopClient()
synPathL1U=os.path.dirname(synPathL0U)
synPathL2U=os.path.dirname(synPathL1U)
spss.SetMacroValue("!synPathL0U",spssaux._smartquote(synPathL0U+"//"))
spss.SetMacroValue("!synPathL1U",spssaux._smartquote(synPathL1U+"//"))
spss.SetMacroValue("!synPathL2U",spssaux._smartquote(synPathL2U+"//"))
A continuación, también se crea un archivo SET_JOB_CWD.xml
correspondiente que contiene el siguiente código:
<Command xmlns="http://xml.spss.com/extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="SET JOB CWD" Language="Python">
</Command>
Estos dos archivos se deben guardar dondequiera que se SHOW EXTPATHS.
sus archivos de extensión (para conocer la ubicación de esta carpeta ejecute SHOW EXTPATHS.
En la sintaxis de SPSS, la ubicación que se muestra para "EXTENSIONES EXTPATHS" es esta carpeta.
Ahora, siempre que tenga una sintaxis guardada en SPSS. Simplemente puede ejecutar SET JOB CWD.
¡y devolverá las macros de SPSS !synPathL0U
!synPathL1U
!synPathL2U
contiene las ubicaciones de carpeta relevantes almacenadas como cadena.