4

%>% コマンドのシーケンス内で因子レベルを割り当てるための 1 行のオプションを見つけようとしています。

これを行うための私の戦略は、.興味のある順序付けられた因子レベルを生成する 関数のシーケンスを実行することでした"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

誰かがこれを行うためのより良い方法を考えたり、私のエラーに光を当てたりできますか?

4

1 に答える 1

2

これはどう

data %>% 
  mutate(variable = factor(variable,
                           levels = variable %>% 
                             table() %>% 
                             data.frame() %>% 
                             arrange(-Freq) %>% 
                             select(1) %>% unlist()))
于 2016-03-10T21:39:57.283 に答える