# reorder.default

##### Reorder Levels of a Factor

`reorder`

is a generic function. The `"default"`

method
treats its first argument as a categorical variable, and reorders its
levels based on the values of a second variable, usually numeric.

- Keywords
- utilities

##### Usage

`reorder(x, …)`# S3 method for default
reorder(x, X, FUN = mean, …,
order = is.ordered(x))

##### Arguments

- x
an atomic vector, usually a

`factor`

(possibly ordered). The vector is treated as a categorical variable whose levels will be reordered. If`x`

is not a factor, its unique values will be used as the implicit levels.- X
a vector of the same length as

`x`

, whose subset of values for each unique level of`x`

determines the eventual order of that level.- FUN
a

`function`

whose first argument is a vector and returns a scalar, to be applied to each subset of`X`

determined by the levels of`x`

.- …
optional: extra arguments supplied to

`FUN`

- order
logical, whether return value will be an ordered factor rather than a factor.

##### Details

This, as `relevel()`

, is a special case of simply calling
`factor(x, levels = levels(x)[....])`

.

##### Value

A factor or an ordered factor (depending on the value of
`order`

), with the order of the levels determined by
`FUN`

applied to `X`

grouped by `x`

. The
levels are ordered such that the values returned by `FUN`

are in increasing order. Empty levels will be dropped.

Additionally, the values of `FUN`

applied to the subsets of
`X`

(in the original order of the levels of `x`

) is returned
as the `"scores"`

attribute.

##### See Also

##### Examples

`library(stats)`

```
require(graphics)
bymedian <- with(InsectSprays, reorder(spray, count, median))
boxplot(count ~ bymedian, data = InsectSprays,
xlab = "Type of spray", ylab = "Insect count",
main = "InsectSprays data", varwidth = TRUE,
col = "lightgray")
```

*Documentation reproduced from package stats, version 3.4.1, License: Part of R 3.4.1*