# fct_reorder

##### Reorder factor levels by sorting along another variable

`fct_reorder()`

is useful for 1d displays where the factor is mapped to
position; `fct_reorder2()`

for 2d displays where the factor is mapped to
a non-position aesthetic. `last2()`

is a helper for `fct_reorder2()`

;
it finds the last value of `y`

when sorted by `x`

.

##### Usage

`fct_reorder(.f, .x, .fun = median, ..., .desc = FALSE)`fct_reorder2(.f, .x, .y, .fun = last2, ..., .desc = TRUE)

last2(.x, .y)

##### Arguments

- .f
A factor (or character vector).

- .x, .y
The levels of

`f`

are reordered so that the values of`.fun(.x)`

(for`fct_reorder()`

) and`fun(.x, .y)`

(for`fct_reorder2()`

) are in ascending order.- .fun
n summary function. It should take one vector for

`fct_reorder`

, and two vectors for`fct_reorder2`

, and return a single value.- ...
Other arguments passed on to

`.fun`

. A common argument is`na.rm = TRUE`

.- .desc
Order in descending order? Note the default is different between

`fct_reorder`

and`fct_reorder2`

, in order to match the default ordering of factors in the legend.

##### Examples

```
# NOT RUN {
boxplot(Sepal.Width ~ Species, data = iris)
boxplot(Sepal.Width ~ fct_reorder(Species, Sepal.Width), data = iris)
boxplot(Sepal.Width ~ fct_reorder(Species, Sepal.Width, .desc = TRUE), data = iris)
chks <- subset(ChickWeight, as.integer(Chick) < 10)
chks <- transform(chks, Chick = fct_shuffle(Chick))
if (require("ggplot2")) {
ggplot(chks, aes(Time, weight, colour = Chick)) +
geom_point() +
geom_line()
# Note that lines match order in legend
ggplot(chks, aes(Time, weight, colour = fct_reorder2(Chick, Time, weight))) +
geom_point() +
geom_line() +
labs(colour = "Chick")
}
# }
```

*Documentation reproduced from package forcats, version 0.4.0, License: GPL-3*