在SPSS中将所有值标签更改为数字

我需要将我的spss文件中所有变量的所有值标签更改为值本身.

我第一次尝试 –
价值标签全部.
执行.

这将删除值标签,但也会完全删除该值.我需要这个有一个标签,因为我正在转换文件,当没有定义值时,它将值转换为数字.因此,我需要将所有值标签更改为数字,以便每个值的标签只是值 – 值= 1然后标签= 1.

有什么想法在我的所有变量中做到这一点?

提前致谢!!

最佳答案 这是一个让您入门的解决方案:

get file="C:\Program Files\IBM\SPSS\Statistics\23\Samples\English\Employee data.sav".
begin program.
import spss, spssaux, spssdata
spss.Submit("set mprint on.")
vd=spssaux.VariableDict(variableType ="numeric")
for v in vd:
    allvalues = list(set(item[0] for item in spssdata.Spssdata(v.VariableName, names=False).fetchall()))
    if allvalues:
        cmd="value labels " + v.VariableName + "\n".join(["  %(i)s '%(i)s'" %locals() for i in allvalues if i <> None]) + "."
        spss.Submit(cmd)
spss.Submit("set mprint off.")
end program.

您可能希望阅读this以了解读取日期变量中的fetchall行为(或者只是排除日期变量的标记,如果它们没有问题?)

点赞