我对此做了很多研究,还没有找到一个明确的解决方案。我用SPSS语法比用python好得多,所以请耐心听我说
我有一个SPSS数据集,其中有大量的变量被重新编码成不同的形式,我正在尝试清理语法,我几乎做到了
数据集来自一个excel文件,该文件的列标题是完整的变量标签,因此当SPSS导入数据集时,未编辑的版本会停留在我想要的变量标签字段中;换句话说,我没有在任何时候明确定义变量标签
在我重新编码变量之后,我需要复制原始的变量标签并在开头加上“Recoded:”。我试图避免在所有重新编码的变量上显式定义数百行变量标签
我遇到的问题是其中一个标签包含正斜杠,使用下面示例中的语法会导致在语法中将斜杠视为退出字符,并且包含斜杠的标签只部分复制到重新编码的变量
data list /var001 1 var002 5.
begin data
3 4
4 5
2 3
5 5
end data.
variable labels
var001 "Variable label that contains apostrophes' but not forward slashes"
/var002 "Variable label that contains apostrophes' and/or forward slashes".
RECODE var001 var002 (1 thru 3 = 0) (4 thru 5 = 1) INTO var001_r var002_r.
EXECUTE.
begin program.
variables='var001 to var002'
import spss, spssaux, spssdata
spss.Submit("set mprint on.")
vdict=spssaux.VariableDict(caseless=True)
varlist=spssaux.VariableDict().expand(variables)
for var in varlist:
vlab = vdict[var].VariableLabel
spss.Submit("VARIABLE LABEL %s." % ("\n" .join([r"%s_r ""Recode: %s"" " % (str(var), vlab)])))
spss.Submit("set mprint off.")
end program.
实际上不需要python。 以下语法使用OMS捕获var名称;来自
dictionary
命令的标签,并使用它们编写创建新标签的新语法:相关问题 更多 >
编程相关推荐