我有一个数据库,每个案例都包含有关手写数字的信息,例如:
Digit1Seq :当在 12 位数字序列中绘制“1”时
Digit1Ht:数字“1”的高度
Digit1Width:它的宽度
Digit2Seq:数字“2”的相同信息
最多数字“12”
我发现我现在也需要以不同方式组织的信息。特别是我想要一个新变量,其中写入第一个数字的高度和宽度,然后是第二个数字的高度和宽度等,作为 SPSS vars
第一位数字
第一个数字宽度 ...
第十二位宽度
这是我在 SPSS 中编写的一个 Python 程序,它应该是一个非常简单的计算,但它遇到了一种命名空间问题:
BEGIN PROGRAM PYTHON.
import spss
indices = ["1", "2", "3","4","5", "6", "7", "8", "9", "10", "11", "12"]
seq=0
for i in indices:
spss.Submit("COMPUTE seq = COMDigit" + i + "Seq.")
spss.Submit("EXECUTE.")
spss.Submit("COMPUTE COM" + indices[seq] + "thWidth = COMDigit" + i + "Width.")
spss.Submit("COMPUTE COM" + indices[seq] + "thHgt = COMDigit" + i + "Hgt.")
spss.Submit("EXECUTE.")
END PROGRAM.
很清楚这里出了什么问题:seq
第一个COMPUTE
命令中的值不会返回到 Python,因此在接下来的两个COMPUTE
命令中可能会发生正确的事情。Python 的值seq
不会改变,所以我最终得到的 SPSS 代码只给了我两个变量 (COM1thWidth
和COM1Hgt
),其中COMDigit1Width
,COMDigit2Width
等被写入。
有什么方法可以让 Pythonseq
每次访问 SPSS 的值,以便字符串连接将创建正确的值COMPUTE
?还是我只是想错了?
已经广泛搜索,但找不到办法做到这一点。
由于我是在 SPSS 中使用 Python 的新手(而不是 SPSS 中的所有 wiz),因此很可能有一种更简单的方法来做到这一点。
欢迎所有建议。