如何折叠类别或重新分类变量? [英] How to collapse categories or recategorize variables?

查看:19
本文介绍了如何折叠类别或重新分类变量?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在R中,我有600,000个分类变量,其中每个都被分类为&0&q;、&1&q;或&q;2&q;。

我要做的是折叠第1&q;和第2&q;,并保留第0";本身,以便在重新分类第0;0和第1";1和第2";1和第2";之后。最后,我只希望将&q;0和&q;1作为每个变量的类别。

另外,如果可能的话,我宁愿不创建600,000个新变量,如果我可以用新的值替换现有的变量,那就太好了!

执行此操作的最佳方式是什么?

推荐答案

recode中有一个函数car(应用回归随附):

require("car")    
recode(x, "c('1','2')='1'; else='0'")

或者对于您的情况,在普通R中:

> x <- factor(sample(c("0","1","2"), 10, replace=TRUE))
> x
 [1] 1 1 1 0 1 0 2 0 1 0
Levels: 0 1 2
> factor(pmin(as.numeric(x), 2), labels=c("0","1"))
 [1] 1 1 1 0 1 0 1 0 1 0
Levels: 0 1

更新:要重新编码数据框的所有分类列tmp,可以使用以下

recode_fun <- function(x) factor(pmin(as.numeric(x), 2), labels=c("0","1"))
require("plyr")
catcolwise(recode_fun)(tmp)

这篇关于如何折叠类别或重新分类变量?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆