knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.path = "man/figures/README-", out.width = "100%" )
A toolbox for working with R arrays in a functional programming style. Flexibly split, bind, reshape, modify, subset, and name arrays.
The package provides:
split_on_dim()
and split_along_dim()
which take an array and return a list.
bind_on_dim()
and bind_as_dim()
take a list and return an array.
modify_along_dim()
takes an array, calls the passed function .f()
on each
subset of the specified dimension, and returns an array of the same shape.
(think of this as a safer and sometimes faster alternative to base::apply()
that is guaranteed to return an array of the same shape as it received)
extract_dim()
a wrapper around [
that allows you to specify the dimension
being subset as a function argument. For example, extract_dim(X, 1, idx)
will extract idx
on the first dimension, regardless how many dimensions are in
the array X
. Contrast this with the base alternative X[idx,,]
, where you
have to match the number of commas ,
to the number of dimensions in X
.
Many of the functions have two variants *_rows()
and *_cols()
for the two
most common case of the first and last dimension. For example
split_on_rows()
which is equivalent to split_on_dim(X, 1)
and
split_on_cols()
which is equivalent to split_on_dim(X, -1)
set_dim()
and set_dimnames()
, pipe-friendly and more flexible
versions of dim<-
and dimnames<-
dim2()<-
, set_dim2()
, array2()
, which reshape or fills arrays using
row-major (C-style) semantics
A handful of lower-level helpers that abstract out patterns commonly
encountered while working with arrays, for example expand_dims()
(the inverse of base::drop()
, or seq_along_rows()
(a
combination of seq_along()
and nrow()
).
A set of functions that help encode atomic vectors as onehot()
binary
matrix's and decode_onehot()
back into atomic vectors. (for example if
training a neural network with keras)
Many of the functions work recursively if provided a list of arrays.
You can install listarrays from CRAN with:
install.packages("listarrays")
Or install the development version from github with:
{r, eval=FALSE}
devtools::install_github("t-kalinowski/listarrays")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.