gpt4 book ai didi

python - 当 spss.Submit() 中的 spss 命令产生警告时,SPSS-Python 脚本停止并出现错误

转载 作者:行者123 更新时间:2023-11-28 21:49:59 30 4
gpt4 key购买 nike

假设我有两个变量列表

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 程序 block 之外,这会导致输出查看器中出现以下警告消息:

No cases were input to this procedure. Either there are none in the working data file or all of them have been filtered out. Execution of this command stops.

但在 Python block 内,它会导致错误并导致 python 脚本停止。

Traceback (most recent call last):
File "", line 7, in
File "C:\PROGRA~1\ibm\SPSS\STATIS~1\23\Python\Lib\site-packages\spss\spss.py", line 1527, in Submit raise SpssError,error spss.errMsg.SpssError: [errLevel 3] Serious error.

有没有办法在 python 中运行这个循环(这可能会产生临时的空数据集并因此产生警告)?

最佳答案

是的,如果您将有问题的函数包装在 try-except 结构中:

for a, b in zip(la, lb):
try:
spss.Submit('''
TEMPORARY.
SELECT IF %s=%s.
FREQUENCY someVar.
''' % (a, b))
except:
pass

关于python - 当 spss.Submit() 中的 spss 命令产生警告时,SPSS-Python 脚本停止并出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32594895/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com