繁体   English   中英

重新分类 R 中的因子水平

[英]Reclassifying factor levels in R

我想降低分类变量的水平。

我有一个针对不同居民收入水平的变量,例如:'0 到 1000 美元','1000 到 2000',...

我想将这 26 个级别重新分类为仅具有某些定义的 3 个级别c('low','medium','high')

这是我尝试过的。

classify<- setNames(list(c('Under $1 000','$1 000 To 2 999','$3 000 To 3 999','$4 000 To 4 999','$5 000 To 5 999','$6 000 To 6 999','$7 000 To 7 999','$8 000 To 9 999','$10000 To 12499','$12500 To 14999','$15000 To 17499','$17500 To 19999','$20000 To 22499','$22500 To 24999','$25000 To 29999','$30000 To 34999','$35000 To 39999','$40000 To 49999','$50000 To 59999'), c('$60000 To 74999','$75000 To $89999','$90000 To $109999'),c('$110000 To $129999','$130000 To $149999','$150000 Or Over')),c("low", "medium", "high"))
f<- function(x) names(classify[sapply(classify, function(y) x %in% y)])
q3$level<- as.factor(sapply(q3$income06,f))

我收到此错误:

顺序错误(y):“orderVector1”中未实现的类型“列表”

这行得通吗?

library(data.table)
setDT(q3)
for(i in names(classify)){
  q3[value %in% unlist(classify[i]), level := i]
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM