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

Change All Value Labels to Numerics in SPSS

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

我第一次尝试 - 值标签全部。 执行。

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

对我的所有变量执行此操作有什么想法吗??

提前致谢!!

这是一个帮助您入门的解决方案:

get file="C:\Program Files\IBM\SPSS\Statistics\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 在阅读 date 变量时的行为(或者简单地排除日期变量,如果它们不引起问题?)