r语言 - 使用 %>% 动态指定因子水平



>我正在尝试找到一个单行选项来分配%>%命令序列中的因子水平。

我这样做的策略是在.上运行一系列函数,以产生我感兴趣的有序因子水平。这会导致"Error: 'match' requires vector arguments",同时不使用 .产生适当的级别。

library(dplyr)
library(magrittr)
data = data.frame(variable = LETTERS[c(1:4,2:4,3:4)])
data %>% count(variable) %>% arrange(desc(n)) %$% variable
# returns C D B A
data %>% mutate(variable = factor(variable, levels = . %>% count(variable) %>% arrange(desc(n)) %$% variable))
# Error: 'match' requires vector arguments

谁能想到更好的方法来做到这一点,或者阐明我的错误?

这个

怎么样

data %>% 
  mutate(variable = factor(variable,
                           levels = variable %>% 
                             table() %>% 
                             data.frame() %>% 
                             arrange(-Freq) %>% 
                             select(1) %>% unlist()))

相关内容

  • 没有找到相关文章

最新更新