如何重新编码在所有因素中都没有答案的多个列?
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
的 所有 列。
我有一个包含 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
的 所有 列。