R: Form Row and Column Sums and Means

colSums {Matrix} | R Documentation

## Form Row and Column Sums and Means

### Description

Form row and column sums and means for `Matrix` objects.

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

    ## S4 method for signature 'CsparseMatrix'
    colSums(x, na.rm = FALSE,
            dims = 1, sparseResult = FALSE)
    ## S4 method for signature 'CsparseMatrix'
    rowSums(x, na.rm = FALSE,
            dims = 1, sparseResult = FALSE)
    ## S4 method for signature 'CsparseMatrix'
    colMeans(x, na.rm = FALSE,
            dims = 1, sparseResult = FALSE)
    ## S4 method for signature 'CsparseMatrix'
    rowMeans(x, na.rm = FALSE,
            dims = 1, sparseResult = FALSE)

### Arguments

`x` | a Matrix, i.e., inheriting from `Matrix`.
`na.rm` | logical. Should missing values (including `NaN`) be omitted from the calculations?
`dims` | completely ignored by the `Matrix` methods.
`...` | potentially further arguments, for method `<->` generic compatibility.
`sparseResult` | logical indicating if the result should be sparse, i.e., inheriting from class `sparseVector`.

### Value

returns a numeric vector if `sparseResult` is `FALSE` as per default. Otherwise, returns a `sparseVector`.

### See Also

`colSums` and the `sparseVector` classes.

### Examples

    (M <- bdiag(Diagonal(2), matrix(1:3, 3,4), diag(3:2))) # 7 x 8
    colSums(M)
    d <- Diagonal(10, c(0,0,10,0,2,rep(0,5)))
    MM <- kronecker(d, M)
    dim(MM) # 70 80
    length(MM@x) # 160, but many are '0' ; drop those:
    MM <- drop0(MM)
    length(MM@x) # 32
      cm <- colSums(MM)
    (scm <- colSums(MM, sparseResult = TRUE))
    stopifnot(is(scm, "sparseVector"),
              identical(cm, as.numeric(scm)))
    rowSums(MM, sparseResult = TRUE) # 16 of 70 are not zero
    colMeans(MM, sparseResult = TRUE)
    ## Since we have no 'NA's, these two are equivalent :
    stopifnot(identical(rowMeans(MM, sparseResult = TRUE),
                        rowMeans(MM, sparseResult = TRUE, na.rm = TRUE)),
    	  rowMeans(Diagonal(16)) == 1/16,
    	  colSums(Diagonal(7)) == 1)

[Package Matrix version 1.1-4 Index]