Row Sums of a Matrix, Based on a Grouping Variable.
DESCRIPTION:
Compute sums across rows of a matrix for each level of a grouping variable.
USAGE:
rowsum(x, group, reorder=T)
REQUIRED ARGUMENTS:
x
a matrix or vector of numeric data. Missing values are allowed.
group
a vector giving the grouping, with one element per row of
x.
Missing values are not allowed.
OPTIONAL ARGUMENTS:
reorder
a logical value, if
TRUE the result will be
in order of
sort(unique(group)),
if
FALSE it will be in the order that rows
were encountered
(and may run faster for large matrices).
VALUE:
a matrix containing the sums. There will be one row per unique value
of
group and the same number of columns as
x.
SEE ALSO:
.
EXAMPLES:
x <- matrix(runif(100), ncol=5)
group <- sample(1:8, 20, T)
xsum <- rowsum(x, group)
# same result another way, slower, and temp may be much larger than x
temp <- model.matrix( ~ a - 1, data.frame(a=as.factor(group)))
xsum2 <- t(temp) %*% x