[R] counting strings of identical values in a matrix

Moshe Olshansky m_olshansky at yahoo.com
Tue Nov 20 02:46:31 CET 2007


How about adding an artificial last row containing no
1's (say a row of zeros)?

--- Marc Schwartz <marc_schwartz at comcast.net> wrote:

> 
> On Thu, 2007-11-15 at 17:53 +0100, A M Lavezzi
> wrote:
> > thank you.
> > I did not think about the case of overlapping of 
> > 1's from the end of one column to the start of the
> next,
> > this would actually be a problem
> > 
> > In the simulations I am running each column 
> > corresponds to the path followed by an agent 
> > across states of a stochastic process,
> > so I would like to avoid mixing up two different 
> > paths (I made a mistake when I mentioned the
> possibility of turning my matrix
> > into a vector, sorry about that).
> > 
> > can I kindly ask again your help on this?
> > 
> > please excuse me.
> > 
> > Mario
> 
> <snip>
> 
> Not a problem.  After sending my follow up, I
> suspected that you might
> need a more general approach. This sort of ends up
> being a combination
> of the first two, in order to keep each column
> sequence intact:
> 
> 
> res <- do.call(cbind, apply(prova, 2, 
>                             function(x)
> do.call(rbind, rle(x))))
> 
> > res
>         [3,] [5,] [7,]   [4,] [7,]   [4,] [8,]  
> [2,] [3,]  
> lengths    2    2    2 2    3    3 2    3    4 1   
> 1    1 6
> values     3    1    3 1    3    1 3    3    1 3   
> 3    1 3
> 
> 
> 
> > table(res["lengths", res["values", ] == 1])
> 
> 1 2 3 4 
> 1 2 1 1 
> 
> 
> I think that should do it, but you might want to
> test it on a known set
> of data.
> 
> HTH,
> 
> Marc
> 
> ______________________________________________
> 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