首页 文章

将一个因子的2个级别分组为R [重复]

提问于
浏览
43

这个问题在这里已有答案:

我有一列数据是A,B和C级别的因素,我有兴趣将这些级别中的两个组合成一个因子,所以它会变成A和B,B = B和C,或者可能是新的变量A和D,D = B和C.我可以通过使用if语句循环遍历列来提供大量方法来实现这一点,但我觉得应该有一个更优雅的方法,我想知道是否有人可以指出我正确的方向 .

3 回答

  • 11

    使用 levels(x) <- ... 指定新级别,并组合以前的某些级别 . 例如:

    f <- factor(LETTERS[c(1:3, 3:1)])
    f
    [1] A B C C B A
    Levels: A B C
    

    现在将“A”和“B”组合成一个单独的级别:

    levels(f) <- c("A", "A", "C")
    f
    [1] A A C C A A
    Levels: A C
    
  • 4

    如果您使用 dplyr 管道,则可以使用 forcats 包 .

    library(forcats)
    f %>% fct_collapse(A = c("A","B"))
    
    #[1] A A C C A A
    #Levels: A C
    
  • 80

    rockchalk库能够结合水平 . 我认为它很棒,如果你想将B和C结合在一起,可以做到这一点:

    library(rockchalk)
    combineLevels(mydf$facVar,levs = c("B", "C"), newLabel = c("BandC") )
    

相关问题