如何将因子水平组合成新的虚拟编码水平

时间:2017-03-13 04:55:32

标签: r

我很难将一个因子的级别组合在一起以获得更少的级别,并将字母级别转换为虚拟代码。我有一个名为Marital_Status的10级因子,我想将它组合成4级。例如,我想将B和G级别合并为0,级别C,D,H和I合并为1,级别E和F合并为2,级别A和J合并为3级。

1 个答案:

答案 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")
    )
  )