重新分类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'中未实现的类型'list'

这行得通吗?

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

最新更新