练习R:car包recode函数多分类变量的重新编码

原创 数据小兵  2021-03-29 09:11  阅读 83 次
数据小兵成长记

雇员数据中,教育年限变量原本有10个水平,不长不短很难受,不利于有关统计结果解读。

我希望把它压缩一下,将原来的10个水平重新编码为4个水平。翻译为国内的意思就是,1初中及以下,2高中,3大学,4研究生及以上,这样本身也好理解,统计结果解读更有利。

car包的recode函数在多分类变量重新编码方面优势明显,今天来练习一下。

01

基本语法

recode(x,recodes,as.factor.result,levels)

其中:

x为数值向量,字符向量或者factor 变量。
recode为设定重新编码规则的字符串。
as.factor.result为是否输出factor变量。若是则为TRUE,不是为FALSE。
levels为排序向量。指定新的编码分组的顺序(默认是按照分组名称排序)。

02

编码规则写法

recodes参数的值是一个字符串,字符串里面是以分号分隔的编码规则:

recodes=“规则1;规则2…”

每一个编码规则的格式为旧码列表=新码,“旧码列表”部分可用lo代表旧码的最小值(low)、hi代表旧码的最大值(high)。

撰写规则如下:

1)旧码=新码 旧码只有单一数值。例如:“0=NA”表示将0改为NA。

2)旧码向量=新码 多个旧码改为一个新码。例如:“c(7,8,9)=‘high’”,将7,8,9改为high。

3)start:end=新码 有序数字改码。例如:“lo:19=‘C’”。

4)else=新码 所有其他情况。例如:“else=NA”。

03

具体案例写法

具体案例写法:

employee$educ <- recode( employee$educ, "8='1'; 12='2'; c(14,15,16)='3'; else='4'", as.factor = T, levels = c("1","2","3","4") )

现在做条图来看重新编码后的效果:

本文地址:http://www.datasoldier.net/archives/2904
版权声明:本文为原创文章,版权归 数据小兵 所有,欢迎分享本文,转载请保留出处!
视频课程《SPSS统计分析:从入门到实践提高》
欢迎订阅SPSS训练营微信公众号

评论已关闭!