请看下面的例子。
我创建一个因子变量。
我不明白如何正确地改变该因子的顺序,以便根据因子级别上进行的某些计算结果重新排序该因子。
例如,我想按照 减少的值来重新排序我的因子。
> library(forcats)
> library(dplyr)
>
>
> dataframe <- data_frame(var = c(1,1,1,2,3,4),
+ var2 = c(10,9,8,7,6,5))
> dataframe
# A tibble: 6 x 2
var var2
<dbl> <dbl>
1 1.00 10.0
2 1.00 9.00
3 1.00 8.00
4 2.00 7.00
5 3.00 6.00
6 4.00 5.00
我创建一个因子变量。
> dataframe <- dataframe %>% mutate(myfactor = factor(var))
>
> dataframe$myfactor
[1] 1 1 1 2 3 4
Levels: 1 2 3 4
我不明白如何正确地改变该因子的顺序,以便根据因子级别上进行的某些计算结果重新排序该因子。
例如,我想按照 减少的值来重新排序我的因子。
> data_rank <- dataframe %>% group_by(myfactor) %>% summarise(rank_var = mean(var2))
> data_rank
# A tibble: 4 x 2
myfactor rank_var
<fct> <dbl>
1 1 9.00
2 2 7.00
3 3 6.00
4 4 5.00
那么4将排在第一位,3将排在第二位,以此类推。
使用fct_reorder
的语法是什么,它背后的逻辑是什么?
谢谢!
factor()
并将ordered
参数设置为TRUE
。 - tushaR