我想知道如何在R中重新编码一个列数组 - 到目前为止,Stackoverflow中没有一个答案对我有效。
我有2005-2015学年的教育水平(ed_level_yy
),因为数据框架是在列不完全相邻的时刻构建的,但是由教育字段列“分解”( ed_fi_yy
)。
目前,列由“教育代码”组成,即“100”将在ed_level中重新编码为“10 Hgh School”。 ed_level_yy
是character
变量。
我试过制作一个矢量:
ed_level <- c("ed_level_05", "ed_level_06", "ed_level07", "ed_level08", ...)
然后像这样使用它:
library(car)
df[ed_level] <- lapply(df[ed_level],
function(x) recode (x, recodes = "'100'='10 High School'; '250' = '10 High School'; '120' = '30 Masters'"))`
它不会显示错误,但它不会更改变量。我也试过这个解决方案:
df[,ed_level] <- as.data.frame(lapply(df[,ed_level],
function(x) ifelse (x == '100', '10 High School',
ifelse(x == '250', '10 High School',
ifelse(x == '120', '30 Masters',x)))))`
然而,这也不起作用。我应该说,我有大约200个不同的“代码”,所以任何可以“捆绑”它们的东西也会受到赞赏 - 即“如果'100'或'150'= '10高中'。