我的SPSS数据集包含两个名称分别为time1
和time2
的变量,分别标记为time1
和time2
。最终,我想使用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”不在列表中
我在这里想念什么?谢谢。
我的变量:
答案 0 :(得分:0)
无法使用spssdata
模块使用Python覆盖数据,因为它使用了Cursor
模块中的spss
对象,该对象无法覆盖变量。可以使用Python创建一个新变量并设置其值。然后,您还可以删除旧变量,然后将新变量重命名为与旧变量相同的名称。
来自 IBM SPSS Statistics的编程和数据管理23:IBM SPSS Statistics和SAS用户指南,第167页:
写入模式允许您将新变量(及其大小写值)添加到活动数据集中