【发布时间】:2018-07-27 20:35:51
【问题描述】:
我正在尝试使用因子级别的“码本”(格式化为命名列表的列表)将大量数值变量转换为因子变量。我可以使用mutate() 和recode_factor() 来一一完成,但我想使用mutate_at() 一次性完成。我该怎么办?
codebook <- list(
vs = list(`0` = 'V-shaped',
`1` = 'straight'),
am = list(`0` = 'automatic',
`1` = 'manual')
)
mtcars %>%
mutate(vs = recode_factor(vs, levels = !!!(pluck(codebook, 'vs'))))
mtcars %>%
mutate_at(vars(names(codebook)),
funs(recode_factor(., levels = !!!(pluck(codebook, 'somehow_pass_column_name_here?')))))
【问题讨论】: