我有一列数据是A,B和C级别的因素,我有兴趣将这些级别中的两个组合成一个因子,所以它会变成A和B,B = B和C,或者可能是新的变量A和D,D = B和C.我可以通过使用if语句循环遍历列来提供大量方法来实现这一点,但我觉得应该有一个更优雅的方法,我想知道是否有人可以指出我正确的方向.
And*_*rie 86
使用levels(x) <- ...指定新的水平,并在一定以前的水平结合起来.例如:
f <- factor(LETTERS[c(1:3, 3:1)])
f
[1] A B C C B A
Levels: A B C
Run Code Online (Sandbox Code Playgroud)
现在将"A"和"B"组合成一个单独的级别:
levels(f) <- c("A", "A", "C")
f
[1] A A C C A A
Levels: A C
Run Code Online (Sandbox Code Playgroud)
Joe*_*Joe 13
如果您正在使用dplyr管道,则可以使用该forcats包.
library(forcats)
f %>% fct_collapse(A = c("A","B"))
#[1] A A C C A A
#Levels: A C
Run Code Online (Sandbox Code Playgroud)