我很难将一个因子的级别组合在一起以获得更少的级别,并将字母级别转换为虚拟代码。我有一个名为Marital_Status的10级因子,我想将它组合成4级。例如,我想将B和G级别合并为0,级别C,D,H和I合并为1,级别E和F合并为2,级别A和J合并为3级。
答案 0 :(得分:1)
使用优秀的新forcats
包。
library(forcats)
# dummy dataset
df_foo = data_frame(
X1 = sample(LETTERS[1:10], 100, replace = TRUE)
)
# collapse factor variable into fewer levels
df_foo = df_foo %>%
mutate(
X2 = fct_collapse(
X1,
"0" = c("B", "G"),
"1" = c("C", "D", "H", "I"),
"2" = c("E", "F"),
"3" = c("A", "J")
)
)