2

这是 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()

4

1 回答 1

0

这两个函数非常相似,但有一些区别:

  • 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)

于 2022-01-07T09:42:01.553 回答