【发布时间】:2020-04-04 20:47:57
【问题描述】:
我为 SPSS 编写了一个 Python 脚本,我需要在语法中使用几次。因此,我想避免多次重复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 结构?
【问题讨论】:
标签: spss