colSums {base} | R Documentation |
Form row and column sums and means for numeric arrays.
colSums (x, na.rm = FALSE, dims = 1) rowSums (x, na.rm = FALSE, dims = 1) colMeans(x, na.rm = FALSE, dims = 1) rowMeans(x, na.rm = FALSE, dims = 1) .colSums(X, m, n, na.rm = FALSE) .rowSums(X, m, n, na.rm = FALSE) .colMeans(X, m, n, na.rm = FALSE) .rowMeans(X, m, n, na.rm = FALSE)
x |
an array of two or more dimensions, containing numeric, complex, integer or logical values, or a numeric data frame. |
na.rm |
logical. Should missing values (including |
dims |
integer: Which dimensions are regarded as ‘rows’ or
‘columns’ to sum over. For |
X |
a numeric matrix. |
m, n |
the dimensions of X. |
These functions are equivalent to use of apply
with
FUN = mean
or FUN = sum
with appropriate margins, but
are a lot faster. As they are written for speed, they blur over some
of the subtleties of NaN
and NA
. If na.rm =
FALSE
and either NaN
or NA
appears in a sum, the
result will be one of NaN
or NA
, but which might be
platform-dependent.
Notice that omission of missing values is done on a per-column or
per-row basis, so column means may not be over the same set of rows,
and vice versa. To use only complete rows or columns, first select
them with na.omit
or complete.cases
(possibly on the transpose of x
).
The versions with an initial dot in the name are ‘bare-bones’ versions for use in programming: they apply only to numeric matrices and do not name the result.
A numeric or complex array of suitable size, or a vector if the result
is one-dimensional. For the first four functions the dimnames
(or names
for a vector result) are taken from the original
array.
If there are no values in a range to be summed over (after removing
missing values with na.rm = TRUE
), that
component of the output is set to 0
(*Sums
) or NaN
(*Means
), consistent with sum
and
mean
.
## Compute row and column sums for a matrix: x <- cbind(x1 = 3, x2 = c(4:1, 2:5)) rowSums(x); colSums(x) dimnames(x)[[1]] <- letters[1:8] rowSums(x); colSums(x); rowMeans(x); colMeans(x) x[] <- as.integer(x) rowSums(x); colSums(x) x[] <- x < 3 rowSums(x); colSums(x) x <- cbind(x1 = 3, x2 = c(4:1, 2:5)) x[3, ] <- NA; x[4, 2] <- NA rowSums(x); colSums(x); rowMeans(x); colMeans(x) rowSums(x, na.rm = TRUE); colSums(x, na.rm = TRUE) rowMeans(x, na.rm = TRUE); colMeans(x, na.rm = TRUE) ## an array dim(UCBAdmissions) rowSums(UCBAdmissions); rowSums(UCBAdmissions, dims = 2) colSums(UCBAdmissions); colSums(UCBAdmissions, dims = 2) ## complex case x <- cbind(x1 = 3 + 2i, x2 = c(4:1, 2:5) - 5i) x[3, ] <- NA; x[4, 2] <- NA rowSums(x); colSums(x); rowMeans(x); colMeans(x) rowSums(x, na.rm = TRUE); colSums(x, na.rm = TRUE) rowMeans(x, na.rm = TRUE); colMeans(x, na.rm = TRUE)