Я написал Python скрипт для SPSS, который мне нужно использовать пару раз в синтаксисе. Таким образом, я хотел бы избежать повторения структуры BEGIN PROGRAM-END PROGRAM.
более одного раза. Я решил поместить его в макрос, но, к сожалению, он не работает, хотя в макросе и в скрипте нет ошибок. Код:
define mac_export (!positional !tokens(1))
OUTPUT EXPORT
/CONTENTS EXPORT = visible LAYERS = printsetting
MODELVIEWS = printsetting
/XLSX DOCUMENTFILE = "tables1.xlsx"
OPERATION = createsheet
sheet = !quote(!unquote(!1))
LOCATION = lastcolumn NOTESCAPTIONS = no
!enddefine.
define clean ()
begin program.
import spss, SpssClient
SpssClient.StartClient()
OutputDoc = SpssClient.GetDesignatedOutputDoc()
OutputDoc.SelectAllText()
OutputDoc.Delete()
OutputDoc.SelectAllLogs()
OutputDoc.Delete()
OutputDoc.SelectAllNotes()
OutputDoc.Delete()
OutputDoc.SelectAllTitles()
OutputDoc.Delete()
OutputDoc.SelectAllWarnings()
OutputDoc.Delete()
end program.
!enddefine.
*** REPORT.
ctables
/table
(att1 + att2 + att3)
[s][mean f1.1]
/slabels position = column visible = no
/titles title = "Attitudes".
clean.
mac_export "Attitudes".
ctables
/mrsets countduplicates = no
/table gender > $STATEMENTS [colpct.responses.count f40.0] by age
/slabels position = column
/titles title = "Statements".
clean.
mac_export "Statements".
* AND OTHER TABLES...
Когда я запускаю этот код, SPSS останавливается при первом вызове макроса clean
. Что я могу сделать, чтобы упростить мой код и избежать повторения структуры BEGIN PROGRAM
?