R/generate-group-id.R

Defines functions generate_group_id

generate_group_id <- function(.data, group) {
  grps <- tidyselect::eval_select(rlang::enexpr(group), .data)
  group_vec <- .data[[grps]]

  # Get sorted group IDs
  group_val <- unique(group_vec)
  group_pos <- match(seq_along(group_val), order(group_val))

  # Compute groups
  group_id <- group_pos[vctrs::vec_group_id(group_vec)]

  tibble::new_tibble(
    stats::setNames(list(group_id), glue::glue(".{ names(grps) }_id"))
  )
}
njtierney/yahtsee documentation built on Feb. 5, 2022, 8:25 p.m.