File: prepGroupCounts.R

package info (click to toggle)
r-cran-htmltable 2.4.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,600 kB
  • sloc: javascript: 6,797; makefile: 2
file content (22 lines) | stat: -rw-r--r-- 618 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#' Retrieves counts for rgroup, cgroup, & tspanner arguments
#'
#' This function is a wrapper to [base::rle()] that
#' does exactly this but is a little too picky about input values.
#'
#' @param x The vector to process
#' @return `list(n = rle$lengths, names = rle$values)`
#' @export
#' @examples
#' prepGroupCounts(c(1:3, 3:1))
prepGroupCounts <- function(x) {
  # Drop all classes but the base class as rle
  counts <- rle(as.vector(x))
  ret <- list(
    n = counts$lengths,
    idx = cumsum(counts$lengths),
    names = counts$values
  )
  structure(ret,
    class = c("htmlTable_group_count", class(ret))
  )
}