colSums                 package: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
     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)

