split {base} | R Documentation

## Divide into Groups

### Description

`split` divides the data in the vector `x` into the groups defined by the factor `f`.

### Usage

    split(x, f)
    split.default(x, f)
    split.data.frame(x, f)

### Arguments

`x` | vector containing the values to be divided into groups.
`f` | a ``factor'' such that `as.factor(f)` defines the grouping.

### Details

`f` is recycled as necessary and if the length of `x` is not a multiple of the length of `f` a warning is printed.

### Value

The value returned is a list of vectors containing the values for the groups. The components of the list are named by the factor levels of `f`. If `f` is longer than `x` some of these will be of zero length.

### See Also

`cut`

### Examples

    n <- 10; nn <- 100
    g <- factor(round(n * runif(n * nn)))
    x <- rnorm(n * nn) + sqrt(as.numeric(g))
    xg <- split(x, g)
    boxplot(xg, col = "lavender", notch = TRUE, varwidth = TRUE)
    sapply(xg, length)
    sapply(xg, mean)

    ## Split a matrix into a list by columns
    ma <- cbind(x = 1:10, y = (-4:5)^2)
    split(ma, col(ma))

    split(1:10, 1:2)