一次调整dplyr链中的每个因素

时间:2019-04-10 03:36:38

标签: r dplyr

我希望具有下划线“ _importance”的所有因素按以下顺序重新调整:“完全不在乎”,“有点关心”,“有点关心”,“有点关心”,“关心”强烈”

我目前正在执行以下操作,以将字符类转换为因子类,但无法弄清楚如何在管道中重新调整级别:

test <- test %>%
  select(contains("_importance")) %>%
  mutate_if(is.character, as.factor)

1 个答案:

答案 0 :(得分:1)

您可以使用fct_relevel中的forcats

library(forcats)
library(dplyr)

neworder <- c("Don't care at all" , "Care a little", "Care somewhat", "Care somewhat strongly", "Care Strongly")

test  %>% 
  mutate_at(vars(contains("_importance")), ~fct_relevel(.x, neworder))

请注意,fct_relevel也可以在当前因子水平上应用函数,因此,例如,如果您只是想反转当前水平,则可以执行fct_relevel(f, rev)