【发布时间】:2015-09-15 20:18:49
【问题描述】:
假设我有两个变量列表
list a: a1 a2 a3
list b: b1 b2 b3
我想以这样的方式处理:
TEMPORARY.
SELECT IF a1=b1.
FREQUENCY someVar.
TEMPORARY.
SELECT IF a2=b2.
FREQUENCY someVar.
TEMPORARY.
SELECT IF a2=b2.
FREQUENCY someVar.
我尝试在 python 循环中执行此操作:
BEGIN PROGRAM.
import spss
la = ['a1', 'a2', 'a3']
lb = ['b1', 'b2', 'b3']
for a, b in zip(la, lb):
spss.Submit('''
TEMPORARY.
SELECT IF %s=%s.
FREQUENCY someVar.
''' % (a, b))
END PROGRAM.
到目前为止一切顺利。除非SELECT IF 命令会创建一个空数据集,否则此方法有效。在 Python 程序块之外,这将在输出查看器中导致以下警告消息:
此过程中没有输入任何病例。要么没有 工作数据文件或全部被过滤掉。执行 此命令停止。
但在 Python 块内,它会导致错误并且 Python 脚本停止。
回溯(最近一次通话最后一次):
文件“”,第 7 行,在
提交中的文件“C:\PROGRA~1\ibm\SPSS\STATIS~1\23\Python\Lib\site-packages\spss\spss.py”,第 1527 行 raise SpssError,error spss.errMsg.SpssError: [errLevel 3] 严重错误。
有没有办法在 python 内部运行这个循环(这可能会产生临时的空数据集并因此产生警告)?
【问题讨论】: