如何重新编码在所有因素中都没有答案的多个列?

How to recode multiple columns that do not have answers in all the factors?

我有一个包含 40 个分类变量的调查,我需要重新编码四个答案选项。

变量示例:

table (BD$Q12)

Never 3-5 times
104    3

table (BD$Q1)
Never 1-2 Times 3-5 Times  6+ Times
 83     16          5         2 

到目前为止,我调查了 5-8 个变量,所以我可以用这样一行代码解决我的问题:

BD$Q1 <- factor (BD$Q1, levels = c ("Never", "1-2 Times", "3-5 Times", "6 + Times"))

但我不知道如何将它自动化到所有列。

我试试

BD [, names] <- lapply (BD [, names], factor) 

但并非所有变量都确定了 4 种类型的答案(它们可以有 1、2、3 或 4),所以我得到了几种类型的级别。有什么线索吗?

提前致谢!

dplyr你可以做到

library(dplyr)
BD %>%
    mutate_all(~factor(.x, levels = c ("Never", "1-2 Times", "3-5 Times", "6 + Times")))

这将重新编码 BD 所有 列。