colSums {base} | R Documentation

## Form Row and Column Sums and Means

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

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

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

### Value

A numeric or complex array of suitable size, or a vector if the result is one-dimensional. 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 `NA` (`*Means`), consistent with `sum` and `mean`.

### See Also

`apply`, `rowsum`

### 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
    data(UCBAdmissions)
    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)

[Package Contents]