这是 fct_reorder 的一个例子
boxplot(Sepal.Width ~ fct_reorder(Species, Sepal.Width, .desc = TRUE), data = iris)
此代码与boxplot(Sepal.Width ~ reorder(Species, -Sepal.Width), data = iris)
fct_reorder()
有什么比更好的点 reorder()
?
这两个函数非常相似,但有一些区别:
reorder()
适用于原子向量,默认使用mean()
.fct_reorder()
仅适用于因子(或字符向量)并默认使用median()
例子:
library(forcats)
x <- 1:10
xf <- factor(1:10)
y <- 10:1
reorder(x, y)
#> [1] 1 2 3 4 5 6 7 8 9 10
#> attr(,"scores")
#> 1 2 3 4 5 6 7 8 9 10
#> 10 9 8 7 6 5 4 3 2 1
#> Levels: 10 9 8 7 6 5 4 3 2 1
reorder(xf, y)
#> [1] 1 2 3 4 5 6 7 8 9 10
#> attr(,"scores")
#> 1 2 3 4 5 6 7 8 9 10
#> 10 9 8 7 6 5 4 3 2 1
#> Levels: 10 9 8 7 6 5 4 3 2 1
fct_reorder(x, y)
#> Error: `f` must be a factor (or character vector).
fct_reorder(xf, y)
#> [1] 1 2 3 4 5 6 7 8 9 10
#> Levels: 10 9 8 7 6 5 4 3 2 1
由reprex 包于 2022-01-07 创建(v2.0.1)