map_along_dim {listarrays} | R Documentation |
Apply a function across subsets along an array dimension
Description
map_along_dim(X, dim, func)
is a simple wrapper around split_along_dim(X, dim) %>% map(func)
. It is conceptually and functionally equivalent to
base::apply()
, with the following key differences:
it is guaranteed to return a list (
base::apply()
attempts to simplify the output to an array, sometimes unsuccessfully, making the output unstable)it accepts the compact lambda notation
~.x
just like inpurrr::map
(andmodify_along_dim()
)
Usage
map_along_dim(X, .dim, .f, ...)
map_along_rows(X, .f, ...)
map_along_cols(X, .f, ...)
Arguments
X |
an R array |
.dim |
which dimension to map along. Passed on to
|
.f |
A function, string of a function name, or |
... |
passed on to |
Value
An R list
Examples
X <- matrix2(letters[1:15], ncol = 3)
apply(X, 1, function(x) paste(x, collapse = "")) # simplifies to a vector
map_along_dim(X, 1, ~paste(.x, collapse = "")) # returns a list
identical(
map_along_rows(X, identity),
map_along_dim(X, 1, identity)) # TRUE
identical(
map_along_cols(X, identity),
map_along_dim(X, -1, identity)) # TRUE