spss:重命名变量标签
spss: rename a variable label
我有一个变量标签列表,我想将它们大写
(即)变量标签。
L0K3V "PROBLÈME AVEC VOS ENFANTS"
PK34 "QUEL ÂGE AVIEZ-VOUS?"
ML9KL "RÉPONDANT A-T'IL DÉJA ÉTÉ LÉGALEMENT MARIÉ(E)"
...
计划
BEGIN PROGRAM PYTHON.
import spss
spss.StartDataStep()
#current dataset
datasetObj = spss.Dataset()
varcount=spss.GetVariableCount()
#populate a list or all the Variable Label
varNameList= [spss.GetVariableLabel(i) for i in xrange(varcount) ]
labellist=[]
for i in xrange(varcount):
myLabel = spss.GetVariableLabel(i)
newLabel = myLabel.capitalize()
spss.Submit(r""" rename labels (%s = %s) . """ %(myLabel, newLabel))
spss.EndDataStep()
END PROGRAM.
Traceback (most recent call last):
File "<string>", line 22, in <module>
File "C:\PROGRA~1\IBM\SPSS\STATIS~1\Python\Lib\site-packages\spss\spss.py", line 1527, in Submit
raise SpssError,error
spss.errMsg.SpssError: [errLevel 98] Submit cannot be used from within a Datastep.
1) 您有一个错误提示无法在数据集中使用提交。
2) VARIABLE LABEL 是重新标记变量的正确命令。
这是实现相同目的的简化方法:
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()
spss.Submit("VARIABLE LABEL %s." % ("\n".join(["%s '%s' " % (str(v), v.VariableLabel.capitalize()) for v in vd])))
spss.Submit("set mprint off.")
end program.
您还可以设置变量标签 属性 (v.VariableLabel = "...") 而不是生成 VARIABLE LABEL 命令。如果你想要的是 Title Case,你可以做 v.VariableLabel = v.VariableLabel.title()
我有一个变量标签列表,我想将它们大写
(即)变量标签。
L0K3V "PROBLÈME AVEC VOS ENFANTS"
PK34 "QUEL ÂGE AVIEZ-VOUS?"
ML9KL "RÉPONDANT A-T'IL DÉJA ÉTÉ LÉGALEMENT MARIÉ(E)"
...
计划
BEGIN PROGRAM PYTHON.
import spss
spss.StartDataStep()
#current dataset
datasetObj = spss.Dataset()
varcount=spss.GetVariableCount()
#populate a list or all the Variable Label
varNameList= [spss.GetVariableLabel(i) for i in xrange(varcount) ]
labellist=[]
for i in xrange(varcount):
myLabel = spss.GetVariableLabel(i)
newLabel = myLabel.capitalize()
spss.Submit(r""" rename labels (%s = %s) . """ %(myLabel, newLabel))
spss.EndDataStep()
END PROGRAM.
Traceback (most recent call last):
File "<string>", line 22, in <module>
File "C:\PROGRA~1\IBM\SPSS\STATIS~1\Python\Lib\site-packages\spss\spss.py", line 1527, in Submit
raise SpssError,error
spss.errMsg.SpssError: [errLevel 98] Submit cannot be used from within a Datastep.
1) 您有一个错误提示无法在数据集中使用提交。
2) VARIABLE LABEL 是重新标记变量的正确命令。
这是实现相同目的的简化方法:
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()
spss.Submit("VARIABLE LABEL %s." % ("\n".join(["%s '%s' " % (str(v), v.VariableLabel.capitalize()) for v in vd])))
spss.Submit("set mprint off.")
end program.
您还可以设置变量标签 属性 (v.VariableLabel = "...") 而不是生成 VARIABLE LABEL 命令。如果你想要的是 Title Case,你可以做 v.VariableLabel = v.VariableLabel.title()