colSums                package:Matrix                R Documentation

_F_o_r_m _R_o_w _a_n_d _C_o_l_u_m_n _S_u_m_s _a_n_d _M_e_a_n_s

_D_e_s_c_r_i_p_t_i_o_n:

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

_U_s_a_g_e:

     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)

_A_r_g_u_m_e_n_t_s:

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

_V_a_l_u_e:

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

_S_e_e _A_l_s_o:

     'colSums' and the 'sparseVector' classes.

_E_x_a_m_p_l_e_s:

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

