# collapse: Collapse Sensors And Calculate Summations/Mean (stable) In dipsaus: A Dipping Sauce for Data Analysis and Visualizations

## Description

Collapse Sensors And Calculate Summations/Mean

(stable)

## Usage

 `1` ```collapse(x, keep, average = FALSE) ```

## Arguments

 `x` A numeric multi-mode tensor (array), without `NA` `keep` Which dimension to keep `average` collapse to sum or mean

## Value

a collapsed array with values to be mean or summation along collapsing dimensions

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33``` ```# Example 1 x = matrix(1:16, 4) # Keep the first dimension and calculate sums along the rest collapse(x, keep = 1) rowSums(x) # Should yield the same result # Example 2 x = array(1:120, dim = c(2,3,4,5)) result = collapse(x, keep = c(3,2)) compare = apply(x, c(3,2), sum) sum(abs(result - compare)) # The same, yield 0 or very small number (1e-10) # Example 3 (performance) RcppParallel::setThreadOptions(numThreads = -1) # auto multicores # Small data, no big difference, even slower x = array(rnorm(240), dim = c(4,5,6,2)) microbenchmark::microbenchmark( result = collapse(x, keep = c(3,2)), compare = apply(x, c(3,2), sum), times = 1L, check = function(v){ max(abs(range(do.call('-', v)))) < 1e-10 } ) # large data big difference x = array(rnorm(prod(300,200,105)), c(300,200,105,1)) microbenchmark::microbenchmark( result = collapse(x, keep = c(3,2)), compare = apply(x, c(3,2), sum), times = 1L , check = function(v){ max(abs(range(do.call('-', v)))) < 1e-10 }) ```

dipsaus documentation built on Sept. 6, 2021, 5:08 p.m.