SPSS AUTORECODE 快速教程
本教程将解释 SPSS 的 AUTORECODE
命令,并演示如何在 nominal_strings.sav
数据文件(如下图所示)上正确使用它。我们建议您下载此数据文件,并按照本教程中的步骤进行操作。您可以在此下载数据文件 nominal_strings.sav。
SPSS AUTORECODE - 是什么?
SPSS 的 AUTORECODE
命令可以从字符串变量 (string variable)(SPSS 字符串变量基础)创建一个新的数值变量 (numeric variable)(SPSS 数值变量基础)。字符串值被重新编码为整数数字(1、2、3 等)。然后,每个数字都会获得它所代表的字符串值作为值标签 (value label)。
关于我们的数据文件,请注意在变量视图 (variable view)(SPSS 数据编辑器窗口)中,emot_1
到 emot_5
都是字符串变量。 我们现在将使用下面的语法 (syntax)(SPSS 语法)来自动重新编码第一个变量,并检查结果。
SPSS AUTORECODE - 语法示例 1
***1. 从字符串变量 emot_1 创建数值变量 emo_1。***
autorecode emot_1 /into emo_1.
***2. 在后续输出表格中显示值和值标签。***
set tnumbers both.
***3. 检查结果。***
frequencies emo_1.
结果
请注意,在此表格中,字符串值首先按字母顺序排序,然后才分配给数字 1 和 2。
SPSS AUTORECODE - PRINT 子命令
每当您使用 AUTORECODE
命令时,最好能够看到哪些字符串值被转换为哪些数值。 我们可以通过简单地添加 PRINT
子命令,让 SPSS 在输出查看器窗口 (output viewer window)(SPSS 输出)中打印此编码方案,如下所示。
SPSS AUTORECODE - 语法示例 2
***在输出查看器窗口中打印编码方案。***
autorecode emot_2
/into emo_2
/print.
结果
请注意,这里有些奇怪:似乎 2 个新值被转换为 3 个新值。 发生的情况是,新值 1 表示一个空(零字符)字符串值。 在 SPSS 逻辑中,这只是另一个不同的(且有效的)字符串值。
我们可以在数据视图 (data view)(SPSS 数据编辑器窗口)中看到,第二个个案在 emot_2
上确实有一个空字符串值。
SPSS AUTORECODE - BLANKS 子命令
我们刚刚看到 AUTORECODE
命令将空字符串值与非空字符串值同等对待。 但是,我们通常将空字符串值视为缺失值 (missing values)(SPSS 缺失值),并且我们希望将它们最后重新编码。 我们可以通过添加 BLANKS
子命令来实现这一点,如下面的语法中的步骤 2 所示。 在执行此操作之前,我们首先删除所有新变量。
SPSS AUTORECODE - 语法示例 3
***1. 删除所有新变量。***
add files file */keep id to emot_5.
***2. 空字符串应该在新变量中成为缺失值。***
autorecode emot_2
/into emo_2
/blank missing
/print.
结果
SPSS AUTORECODE - GROUP 子命令
此时,请注意我们运行的每个 AUTORECODE
示例都导致了不同的编码方案。 但是,当我们仔细查看我们的数据时,我们看到我们的字符串变量主要包含相似的值。 这表明这些 5 个问题使用了相同的答案类别。
在这种常见情况下,我们通常希望我们的新变量保持一致编码。 也就是说,我们希望在一组变量中具有相同的值标签 (value label)。 这可以通过添加 GROUP
子命令来实现,如下所示。
SPSS AUTORECODE - 语法示例 4
***1. 删除所有新变量。***
add files file */keep id to emot_5.
***2. 对所有变量使用相同的编码方案。***
autorecode emot_1 to emot_5
/into emo_1 to emo_5
/group
/blank missing
/print.
结果
请注意,我们基本上通过最后一个命令一次性转换了整个数据文件。 但是,有一件事我们不喜欢:值 2 用于“不知道/没有答案”。 这没有什么真正的错误,但是这个值位于用于情感表达的值中有点尴尬。
AUTORECODE
没有任何可以规避此问题的选项,但我们现在将提供两种方法来纠正它。
选项 1:基本语法
这里的一个选项是将 2 重新编码 (RECODE)(SPSS RECODE 命令)为 7,然后手动调整值标签。 幸运的是,我们可以同时对所有相关变量执行此操作,如下所示。
***1. 将所有新变量的 2 重新编码为 7。***
recode emo_1 to emo_5 (2 = 7).
execute.
***2. 从 2 中删除值标签,并将值标签应用于 6 和 7。***
add value labels emo_1 to emo_5
2 ''
6 '(Blank)'
7 'Don''t know / no answer'.
选项 2:使用值标签工具重新编码
处理“不知道”值的更优雅的选项是使用我们的 SPSS - 使用值标签工具重新编码。 安装它后,它可以通过运行以下语法将值 2 和 5 及其值标签交换。
***注意:以下语法仅在安装 SPSS Recode With Value Labels Tool 后运行。***
SPSSTUTORIALS RECODEWITHVALUELABELS
VARIABLES = 'emo_1 to emo_5'
OLDVALUES = '2 5'
NEWVALUES = '5 2'.