Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

vec_group

Identify groups


Description

[Experimental]

  • vec_group_id() returns an identifier for the group that each element of x falls in, constructed in the order that they appear. The number of groups is also returned as an attribute, n.

  • vec_group_loc() returns a data frame containing a key column with the unique groups, and a loc column with the locations of each group in x.

  • vec_group_rle() locates groups in x and returns them run length encoded in the order that they appear. The return value is a rcrd object with fields for the group identifiers and the run length of the corresponding group. The number of groups is also returned as an attribute, n.

Usage

vec_group_id(x)

vec_group_loc(x)

vec_group_rle(x)

Arguments

x

A vector

Value

  • vec_group_id(): An integer vector with the same size as x.

  • vec_group_loc(): A two column data frame with size equal to vec_size(vec_unique(x)).

    • A key column of type vec_ptype(x)

    • A loc column of type list, with elements of type integer.

  • vec_group_rle(): A vctrs_group_rle rcrd object with two integer vector fields: group and length.

Note that when using vec_group_loc() 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.

Dependencies

Examples

purrr <- c("p", "u", "r", "r", "r")
vec_group_id(purrr)
vec_group_rle(purrr)

groups <- mtcars[c("vs", "am")]
vec_group_id(groups)

group_rle <- vec_group_rle(groups)
group_rle

# Access fields with `field()`
field(group_rle, "group")
field(group_rle, "length")

# `vec_group_id()` is equivalent to
vec_match(groups, vec_unique(groups))

vec_group_loc(mtcars$vs)
vec_group_loc(mtcars[c("vs", "am")])

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

vctrs

Vector Helpers

v0.3.8
MIT + file LICENSE
Authors
Hadley Wickham [aut], Lionel Henry [aut, cre], Davis Vaughan [aut], data.table team [cph] (Radix sort based on data.table's forder() and their contribution to R's order()), RStudio [cph]
Initial release

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.