# colSums {base}

### Description

Form row and column sums and means for numeric arrays.

### Usage

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)

### Arguments

- 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
`NaN`

) be omitted from the calculations? - dims
- integer: Which dimensions are regarded as ‘rows’ or ‘columns’ to sum over. For
`row*`

, the sum or mean is over dimensions`dims+1, ...`

; for`col*`

it is over dimensions`1:dims`

. - X
- a numeric matrix.
- m, n
- the dimensions of X.

### Details

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.

### Values

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 ` `

(`*Sums`

) or `NaN`

(`*Means`

), consistent with `sum`

and `mean`

.

### Examples

## 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)

Documentation reproduced from R 3.0.2. License: GPL-2.