已有变量值的重编码
***注意*** 在变量赋值时,用上一节的方法,会将缺失值命为1。
文章目录
1、重编码(Recode)—对连续变量进行分组
-
可直接替换原变量,也可
重编码为新变量
接下来以重编码为新变量为例
—仍然以年龄分类为例
Steps:
转换–> 重新编码为不同变量()–> 选中‘S3’到数字变量–> 输出变量,名称:TS3New;标签:年龄分类;‘变化量’–> 旧值和新值–> 设置‘旧值’对话框,‘范围,从最低到值’:35 <—>设置‘新值’对话框,1;‘添加’;‘范围’:35到55 <–>‘新值’:2;‘添加’;‘范围,从值到最高’:55 <–> ‘新值’:3;‘添加’。
如下图所示:
注意:
此处,有重叠的数字:35、55。
当年龄为35时,会被赋值为1还是2 ?
当年龄为55时,会被赋值为2还是3 ?
1.1 有重叠界值时的处理
-
解答上述问题
执行程序时是由下往上执行,代码:
DATASET NAME 数据集1 WINDOW=FRONT.
RECODE s3 (Lowest thru 35=1) (35 thru 55=2) (55 thru Highest=3) INTO TS3New.
VARIABLE LABELS TS3New '年龄分类'.
EXECUTE.
RECODE语句,从右往左执行,先将35赋值为2,然后将35赋值为1.
- 可以通过设置数值规避逻辑错误
1.2 Missing、Sysmis
- 在‘旧值和新值’对话框可以设置缺失值为系统缺失值或者复制旧值。
-
当‘数字变量’对话框选入多个变量时,旧值与新值得对应规则用的是一样的。
-
可以输出新值为‘字符串’
1.3 Else(例外情况)
其它不满足‘旧值’ <–> ‘新值’的值,在‘旧值与新值’对话框,选择‘所有其它值’。
2. 分类变量类别的合并
例如:将Time(月份)归类为2007,2008,2009年,而记录中有每年的4月和12月。
【文件中的Time变量是数值型,先将其在‘变量视图’中转换为‘字符串形式’】
也可以直接使用数值型,需要注意小数位数。
Steps:
如下图。特别注意:在设置Else时,需要先勾选‘输出变量为字符串’。
如果是像年龄那样的连续变量,可以通过设置范围来进行分类,本质上就是赋值。
3. 直接替换旧变量
Steps:
转换–> 重新编码为相同的变量。
步骤和操作与上述一样,只是不用设置旧变量与新变量。