变量的重新编码有以下三种方法:
●用重新编码的变量取代原来的变量,即“重新编码为相同的变量”,例如,可将薪金合并到薪金范围类别中;
●用重新编码的变量生成一个新变量,即“重新编码为不同变量”,例如,可将薪金合并到包含薪金范围类别的新变量中;
●“自动重新编码”功能。
使用“重新编码到相同变量中”可以对数值变量和字符串变量重新编码;但如果选择多个变量,则它们必须为相同类型,不可将数值变量和字符串变量放在一起重新编码。
使用“重新编码到不同变量中”可以对数值变量和字符串变量重新编码;可以将数值变量重新编码为字符串变量,反之亦然;如果选择多个变量,则它们必须为相同类型,不可将数值变量和字符串变量放在一起重新编码。
打开数据文件,选择“转换”→“重新编码为相同的变量”,弹出“重新编码为相同的变量”对话框,如图3-64所示。
图3-64 “重新编码为相同的变量”对话框
当有变量选入“变量”框内,激活“旧值和新值”按钮,单击它,弹出“重新编码为相同变量:旧值和新值”对话框,如图3-65所示。
●旧值:指要重新编码的值;可对单个值、值范围和缺失值重新编码;不可为字符串变量选择系统缺失值和范围,因为这两个概念都不适用于字符串变量;旧值必须与原变量是相同的数据类型(数值或字符串)。除了最后一项“所有其他值”,其余各项含义均与图3-61相同。“所有其他值”指定义前面所有定义没有包括的值。
●新值:是由每个旧值或值范围重新编码获得的单个值;新值可为数值或字符串。各项含义与“旧值”中的“值”、“系统缺失值”的含义相同。
●旧-->新:用于显示旧值与新值的替换情况,可以在列表中添加、更改和删除指定值。列表将根据指定的旧值按下列顺序自动排序:单值、缺失值、范围、所有其他值。如果更改列表中的重新编码指定,则过程自动对列表重新排序(如果必要)以保持此顺序。
图3-65 “重新编码为相同变量:旧值和新值”对话框
单击“如果”按钮,弹出“重新编码为相同变量:If个案”对话框,其与图3-56所示的对话框完全一样,各项含义可参见3.9.1节。
实例十二:“data03-11”数据文件包括“处理”和“苗高”这两个变量,每个“处理”变量包括20个观测量,如图3-66所示。现要求利用重新编码为相同变量将“区组”变量的取值1、2、3、4分别转换为1、1、2、2。
(1)打开“data03-11”数据文件,选择“转换”→“重新编码为相同的变量”,弹出如图3-64所示的“重新编码为相同的变量”对话框。将左侧变量列表中的“处理”变量选中,单击 按钮,将其选入“变量”中。
图3-66 “data03-11”部分数据
(2)单击“旧值和新值”按钮,弹出如图3-65所示的“旧值和新值”对话框。
(3)选中“旧值”中的“值”,并在其下的方框中输入1,同时,选中“新值”中的“值”,并在其右侧的方框中输入1,单击“添加”按钮将其添加至“旧-->新”列表中。
(4)在“旧值”中的“值”输入2,在“新值”中的“值”输入1,单击“添加”按钮确认。
(5)继续在“旧值”中的“值”输入3,在“新值”中的“值”输入2,单击“添加”按钮确认。
(6)继续在“旧值”中的“值”输入4,在“新值”中的“值”输入2,单击“添加”按钮确认。
(7)选中“旧值”中的“系统缺失值或用户缺失值”,同时,选中“新值”中的“系统缺失值”,单击“添加”按钮确认。
(8)设置完成后如图3-67所示,单击“继续”按钮返回主对话框。
图3-67 “重新编码为相同变量:旧值和新值”对话框
(9)完成所有设置后,单击“确定”按钮执行命令。
重新编码为相同变量时,系统默认变量新值的类型与旧值的类型一样,此处旧值为数值型,故不能在新值的“值”中输入字符串,如英文字母。
图3-68是重新编码前后的部分结果,可以看出“处理”变量的取值已经发生了变化。同时,用户可以在“变量视图”窗口发现,利用“重新编码为相同变量”方法对变量进行重新编码只对变量的取值进行更改,而对变量值的标签没有更改。所以,若用户所设定的旧标签不符合新值所代表的含义,则需要重新设定。
图3-68 重新编码前后的对比
打开数据文件,选择“转换”→“重新编码为不同变量”,弹出“重新编码为不同变量”对话框,如图3-69所示。
●输出变量:用于指定输出变量的名称和标签。
图3-69 “重新编码为不同变量”对话框
单击“旧值和新值”按钮,弹出“重新编码为不同变量:旧值和新值”对话框,如图3-70所示。该对话框与图3-65相似,部分选项可参见3.11.1节。
●复制旧值:可保留旧值。如果某些值不需要重新编码,那么使用此项以包含旧值。任何未指定的旧值不包含在新变量中,具有那些值的个案将分配新变量的系统缺失值。
●输出变量是字符串:将重新编码的新变量定义为字符串(字母数字)变量。旧变量可以是数值或字符串。
●将数字字符串转换为数字:将包含数字的字符串值转换为数字。包含除数字和可选的符号(+或-)以外的任何字符的字符串会分配系统缺失值。
图3-70 “重新编码为不同变量:旧值和新值”对话框
实例十三:仍采用如图3-66所示的“data03-11.sav”数据文件。现要求将“苗高”变量转换为每20cm为一个苗高段的定序变量,并生成新变量。
(1)打开“data03-11.sav”数据文件,选择“转换”→“重新编码为不同变量”,弹出如图3-69所示的“重新编码为不同变量”对话框。
(2)选中左侧变量列表中的“苗高”变量,单击 按钮,将其选入“输入变量->输出变量”列表中,显示为 ,提示用户输入新变量名称。
(3)在“输出变量”中的“名称”输入“苗高段”,标签中输入“每20cm为一段”。输入完毕后单击“变化量”按钮,此时在“输入变量->输出变量”列表中将显示 。
(4)单击“旧值和新值”按钮,弹出如图3-70所示的“重新编码为不同变量:旧值和新值”对话框。
(5)选中“旧值”中的“范围,从最低到值”,并在其下的方框中输入20,同时,选中“新值”中的“值”,并在其下的方框中输入1,单击“添加”按钮将其添加至“旧-->新”列表中。
(6)在“旧值”中的“范围”从上到下分别输入20、40,在“新值”中的“值”输入2,单击“添加”按钮确认。
(7)在“旧值”中的“范围,从值到最高”输入40,在“新值”中的“值”输入3,单击“添加”按钮确认。
(8)设置完成后如图3-71所示,单击“继续”按钮返回主对话框。
图3-71 “重新编码为不同变量:旧值和新值”对话框
(9)完成所有设置后,单击“确定”按钮执行命令。
重新编码为不同变量时,可以将数值型变量转换为字符型变量,也可以将字符型变量转换为数值型变量。对字符型变量转换为数值型变量的情况,旧值只能选择系统或用户缺失,新值只能选择系统缺失。
图3-72是重新编码为不同变量的部分结果,可以看出,在原变量后面生成了一个新变量“苗高段”。值得注意的是,该变量为定序变量,其中的每个值所代表的含义需要用户在执行完命令后对变量的值标签进行设置。
图3-72 “重新编码为不同变量”的部分结果
“重新编码为相同变量”和“重新编码为不同变量”只适用于名义变量和顺序变量,或是将尺度变量转化为顺序变量。
自动重新编码是将字符型变量或数值型变量转换成连续的整数。自动编码在一些统计分析过程很有必要。当类别代码不连续时,对许多过程来说,生成的空单元格将降低性能并增加内存要求;某些过程不能使用字符串变量,某些过程要求因子级别为连续的整数值。在自动重新编码时,SPSS遵循如下规则。
●SPSS通过分组变量重新产生一个新的变量,新变量的值按原变量的顺序重新赋予从1开始的连续整数值。
●自动重新编码创建的新变量保留了旧变量中任何已定义的变量标签和值标签。若分组变量没有变量值标签,新变量则将原变量的值作为新变量的变量值标签。一个表显示了旧值、新值及值标签。
●字符串值将按字母顺序重新编码,其中大写字母将排在相应的小写字母之前。
●缺失值被重新编码为高于任何非缺失值的缺失值,并保留它们的原有顺序。例如,如果原变量有10个非缺失值,最低的缺失值将被重新编码为11,值11将作为新变量的缺失值。
打开数据文件,选择“转换”→“自动重新编码”,弹出“自动重新编码”对话框,如图3-73所示,其中各项的含义如下。
图3-73 “自动重新编码”对话框
●变量→新名称:用于选入需要进行编号的变量。当有变量选入该列表中时,激活下方的“新名称”输入框,此时则可在输入框中输入新名称,同时,单击“添加新名称”按钮完成新名称的添加。
●重新编码起点:用于指定重新编码的顺序,有最低值和最大值两个选项。
●对所有变量使用同一种重新编码方案:将当前被编码的方案应用到所有的选择变量中。
●将空字符串值视为用户缺失值:选中此项,在编码时空字符串将不被编码;不选此项,空字符串将被正常编码。
●模板:有两个选项,分别为“应用文件中的模板”和“将模板另存为”。前者是利用模板对当前选择的变量进行自动重新编码,后者是将当前对选择变量的自动重新编码方案保存到外部模板文件中。
实例十四:“data03-12.sav”数据文件中包括4个变量,这4个变量分别为数值型、数值型、字符串型、字符串型,如图3-74所示。现要求对4个变量都进行自动重新编码,均将重新编码的起点设为最低值。
(1)打开“data03-12.sav”数据文件,选择“转换”→“自动重新编码”,弹出如图3-73所示的“自动重新编码”对话框。
(2)选中左边变量列表中的“变量1”,单击 按钮,将其选入“变量->新名称”列表中,显示为 ,提示用户输入新变量名称。此时,在下方的“新名称”后面的方框中输入新名称“新变量1”,激活并“添加新名称”按钮,添加完后显示为 。同时,在下方的“重新编码起点”选项中选中“最小值”。
(3)重复第二步的操作,分别将“变量2”“变量3”“变量4”选入“变量->新名称”列表中,并分别命名为“新变量2”“新变量3”“新变量4”。
(4)勾选“将空字符串值视为用户缺失值”选项。
(5)完成所有设置后,单击“确定”按钮执行命令。
图3-74 “data03-12.sav”数据
图3-75是自动重新编码的部分结果,分别观察表格后四列,即4个变量自动重新编码后的序号,发现如下规律:生成的新变量是连续变量;选中“将空字符串值视为用户缺失值”选项后,空字符串将不被编码;小写字母优先于大写字母;中文拼音字符型变量按照各字符的首写字母的顺序重新编码。
图3-75 “自动重新编码”的结果