【发布时间】:2020-10-20 14:58:25
【问题描述】:
我有以下数据框:
library(tidyverse)
df <- tibble(a = c(1, 2, 3, 4, 5),
b = c("Y", "N", "N", "Y", "N"),
c = c("A", "B", "C", "A", "B"))
df <- df %>%
mutate_if(is.character, funs(as.factor))
df的输出:
a b c
<dbl> <fct> <fct>
1 1 Y A
2 2 N B
3 3 N C
4 4 Y A
5 5 N B
我想将所有因子(b 和 c 变量)级别重新编码为整数:如果一个因子只有两个级别,则应将其重新编码为 {0, 1},否则为 {1, 2, 3 , ...} 级。所以输出应该是:
a b c
<dbl> <fct> <fct>
1 1 1 1
2 2 0 2
3 3 0 3
4 4 1 1
5 5 0 2
我可以单独(一个一个)重新编码变量,但我想知道是否有更方便的方法。
【问题讨论】: