rowsum {base} | R Documentation |
Give 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 = TRUE)
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
|
reorder |
if |
Value
a matrix containing the sums. There will be one row per unique value
of group
.
Author(s)
Terry Therneau
See Also
tapply
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
## same as last one, but really slow
xsum3 <- tapply(x, list(group[row(x)], col(x)), sum)