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

R 如何将因子水平组合成新的虚拟编码水平,r,R,我很难将一个因子的级别组合在一起,以获得更少的级别,并将字母级别转换为伪代码。我有一个称为婚姻状况的10级因素,我想将其合并为4级。例如,我想将B级和G级合并为0级,将C级、D级、H级和I级合并为1级,将E级和F级合并为2级,将A级和J级合并为3级 使用优秀的新软件包 ?levels的帮助文件中给出了这方面的两个例子-类似于代码的东西非常有用,但是如何让它在我的main data.frame?中创建新变量?它几乎与现有的levels@thelatemail是否有理由选择一个函数而不是另一个?我已

我很难将一个因子的级别组合在一起,以获得更少的级别,并将字母级别转换为伪代码。我有一个称为婚姻状况的10级因素,我想将其合并为4级。例如,我想将B级和G级合并为0级,将C级、D级、H级和I级合并为1级,将E级和F级合并为2级,将A级和J级合并为3级

使用优秀的新软件包


?levels
的帮助文件中给出了这方面的两个例子-类似于代码的东西非常有用,但是如何让它在我的main data.frame?中创建新变量?它几乎与现有的
levels@thelatemail是否有理由选择一个函数而不是另一个?我已经试着让这段代码运行了将近一个小时,哈德利的R for Data Science一书建议使用forcats软件包。我将尝试您提供的级别代码,它比您以前文章中链接的示例简单得多。@AustinMullings-个人偏好。哈德利为猫写了
,所以他建议这样做是理所当然的。我会说,选择你认为最适合你的东西
forcats
还有一系列其他因素操作函数,您可能会发现这些函数很有用。@LateMail我的新工作主要围绕我很少使用的分类变量展开,因此我将更多地了解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")
    )
  )