[R] columnwise nnzero for dgCMatrix

Dennis Murphy djmuser at gmail.com
Sun Jun 26 19:19:49 CEST 2011


Hi:

What about

colSums(mymat != 0)

?

# Example:
x <- matrix(sample(c(-1, 0, 1, 2), 100, replace = TRUE, prob = c(0.1,
0.8, 0.07, 0.03)),
              nrow = 25)
which(x != 0)  # 17 nonzero elements in this matrix
 [1]  9 17 27 32 36 41 44 45 49 50 62 67 68 72 76 78 82
colSums(x != 0)
[1] 2 8 4 3


Dennis

On Sun, Jun 26, 2011 at 3:15 AM, C6H5NO2 <C6H5NO2 at gmail.com> wrote:
> Hi R users,
>
> I want to know whether there is a fast method to compute the nonzeroes for
> each column of dgCMatrix.
>
> For summation or average I can use colSums or colMeans. To count the
> non-zeroes I write a function
>
> colCounts <- function(Mat) {
>    M1 <- apply(Mat, MARGIN=2, FUN=nnzero)
> }
>
> But it seems this is quite slow because the apply function would transform a
> dgCMatrix to a matrix.
>
> So I come here to ask if there is anybody know some fast method.
>
> --
> View this message in context: http://r.789695.n4.nabble.com/columnwise-nnzero-for-dgCMatrix-tp3625726p3625726.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list