在 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
变量时的行为(或者简单地排除日期变量,如果它们不引起问题?)
我需要将 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
变量时的行为(或者简单地排除日期变量,如果它们不引起问题?)