Similar in function to dcast, but produces a sparse
Matrix as an output. Sparse matrices are beneficial for this
application because such outputs are often very wide and sparse. Conceptually
similar to a pivot operation.
Usage
dMcast(
data,
formula,
fun.aggregate = "sum",
value.var = NULL,
as.factors = FALSE,
factor.nas = TRUE,
drop.unused.levels = TRUE
)Arguments
- data
a data frame
- formula
casting
formula, see details for specifics.- fun.aggregate
name of aggregation function. Defaults to 'sum'
- value.var
name of column that stores values to be aggregated numerics
- as.factors
if TRUE, treat all columns as factors, including
- factor.nas
if TRUE, treat factors with NAs as new levels. Otherwise, rows with NAs will receive zeroes in all columns for that factor
- drop.unused.levels
should factors have unused levels dropped? Defaults to TRUE, in contrast to
model.matrix
Details
Casting formulas are slightly different than those in dcast and follow
the conventions of model.matrix. See formula for
details. Briefly, the left hand side of the ~ will be used as the
grouping criteria. This can either be a single variable, or a group of
variables linked using :. The right hand side specifies what the
columns will be. Unlike dcast, using the + operator will append
the values for each variable as additional columns. This is useful for
things such as one-hot encoding. Using : will combine the columns as
interactions.