[R] Counting zeros in a matrix

Benilton Carvalho bcarvalh at jhsph.edu
Tue Nov 28 22:44:18 CET 2006


countZerosBeforeOnes <- function(v)
   sum(v[1:max(which(v == 1))] == 0)

apply(A, 1, countZerosBeforeOnes)

cheers,
b

On Nov 28, 2006, at 4:20 PM, Guenther, Cameron wrote:

> Hi All,
>
> If you could help me with this problem I would greatly appreciate it.
>
> Suppose I have a matrix A:
>
> 1 1 1 1 0 1 1 1 1
> 1 1 1 0 1 0 1 0 0
> 1 0 1 0 0 1 0 0 0
> 1 1 0 0 0 0 1 0 0
>
> I would like, for each row, to sum the number of times a 0 appears in
> front of a 1. So what I would like is to have
>                    Sum
> 1 1 1 1 0 1 1 1 1   1
> 1 1 1 0 1 0 1 0 0   2
> 1 0 1 0 0 1 0 0 0   2
> 1 1 0 0 0 0 1 0 0   1
>
> I tried writing a function to do this but am getting mixed up in the
> [i,j] coding.  This is just an example the real matrix is much larger.
>
> Thanks in advance.
>
>
>
> Cameron Guenther, Ph.D.
> 100 8th Ave. SE
> St. Petersburg, Fl 33701
> 727-896-8626 ext. 4305
> cameron.guenther at myfwc.com
> ______________________________________________
> R-help at stat.math.ethz.ch 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