我想把级别"A","B"组合成"A + B".我通过以下方式成功完成了此操作:
x <- factor(c("A","B","A","C","D","E","A","E","C"))
x
#[1] A B A C D E A E C
#Levels: A B C D E
l <- c("A+B","A+B","C","D+E","D+E")
factor(l[as.numeric(x)])
#[1] A+B A+B A+B C D+E D+E A+B D+E C
#Levels: A+B C D+E
Run Code Online (Sandbox Code Playgroud)
有没有更简单的方法来做到这一点?(即更多可解释的函数名称,例如combine.factor(f,old.levels,new.levels)将有助于更容易理解代码.)
此外,我试图找到一个很好的命名函数,可能在dplyr包中使用数据框但没有运气.最接近的实施是
df %>% mutate(x = factor(l[as.numeric(x)]))
Run Code Online (Sandbox Code Playgroud)