使用Python覆盖SPSS变量

时间:2018-07-30 06:20:43

标签: python spss

我的SPSS数据集包含两个名称分别为time1time2的变量,分别标记为time1time2。最终,我想使用Python读取变量并进行修改。作为一个简单的测试,我尝试将time1的每个条目替换为"hello"。这是我正在使用的SPSS语法:

begin program python.
import spss, spssdata

data = spssdata.Spssdata(indexes=["time1"], accessType="w")

for row in data:
    data.setvalue("time1", "hello")
    data.CommitCase()

data.CClose()
end program.

但是我遇到以下错误:

  

警告:退出程序块时检测到打开的光标。   光标已关闭。追溯(最近一次通话):
  文件“”,第5行,在文件中   “ C:\ PROGRA〜1 \ PREDIC〜1 \ PSIMAG〜1 \ 5 \ IBM \ SPSS \ STATIS〜1 \ 25 \ PYTHON \ Lib \ site-   package \ spssdata \ spssdata.py“,第467行,位于setvalue中       index = [var.spec [0] for self.newvars中的varspec] .index(var)ValueError:“ time1”不在列表中

我在这里想念什么?谢谢。

我的变量:

My variables

1 个答案:

答案 0 :(得分:0)

无法使用spssdata模块使用Python覆盖数据,因为它使用了Cursor模块中的spss对象,该对象无法覆盖变量。可以使用Python创建一个新变量并设置其值。然后,您还可以删除旧变量,然后将新变量重命名为与旧变量相同的名称。

来自 IBM SPSS Statistics的编程和数据管理23:IBM SPSS Statistics和SAS用户指南,第167页:

  

写入模式允许您将新变量(及其大小写值)添加到活动数据集中