Split a 2d or higher data structure into lower-d pieces
based
Usage
splitter_a(data, .margins = 1L, .expand = TRUE)
Arguments
data
>1d data structure (matrix, data.frame or
array)
.margins
a vector giving the subscripts to split
up data by.
.expand
if splitting a dataframe by row, should
output be 1d (expand = FALSE), with an element for each
row; or nd (expand = TRUE), with a dimension for each
variable.
Value
a list of lower-d slices, with attributes that record
split details
Details
This is the workhorse of the a*ply functions.
Given a >1 d data structure (matrix, array, data.frame),
it splits it into pieces based on the subscripts that you
supply. Each piece is a lower dimensional slice.
The margins are specified in the same way as
apply, but splitter_a just splits up
the data, while apply also applies a function and
combines the pieces back together. This function also
includes enough information to recreate the split from
attributes on the list of pieces.