R: Split a vector into groups

vec_split {vctrs} | R Documentation

## Split a vector into groups

### Description

This is a generalisation of `split()` that can split by any type of vector, not just factors. Instead of returning the keys in the character names, the are returned in a separate parallel vector.

### Usage

    vec_split(x, by)

### Arguments

`x` | Vector to divide into groups.
`by` | Vector whose unique values defines the groups.

### Value

A data frame with two columns and size equal to `vec_size(vec_unique(by))`. The `key` column has the same type as `by`, and the `val` column is a list containing elements of type `vec_ptype(x)`.

Note for complex types, the default `data.frame` print method will be suboptimal, and you will want to coerce into a tibble to better understand the output.

### Examples

    vec_split(mtcars$cyl, mtcars$vs)
    vec_split(mtcars$cyl, mtcars[c("vs", "am")])

    if (require("tibble")) {
      as_tibble(vec_split(mtcars$cyl, mtcars[c("vs", "am")]))
      as_tibble(vec_split(mtcars, mtcars[c("vs", "am")]))
    }

[Package vctrs version 0.2.4 Index]