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

时间:2019-05-09 22:37:44

标签: r recode

我有一个包含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),因此我得到了几种类型的级别。有任何线索吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以在function round(number, significance) { return Math.ceil(number / significance) * significance; } console.log(round(10.986, 5)); console.log(round(105.32, 5));

dplyr

这将重新编码library(dplyr) BD %>% mutate_all(~factor(.x, levels = c ("Never", "1-2 Times", "3-5 Times", "6 + Times"))) 所有列。