[R] counting strings of identical values in a matrix

A M Lavezzi lavezzi at unipa.it
Thu Nov 15 17:18:12 CET 2007


Dear Marc
thank you so much!

One thing: writing xx=[1,2,1,1] is not a typo: I 
read it as the count of runs of different length starting from 1.

In "prova" I have 1 run of length one, 2 runs of 
length two, 1 run of length three and 1 run of length four.

Can I abuse of your time  and ask how to do this?

Thanks again
Mario

At 16.48 15/11/2007, you wrote:

>On Thu, 2007-11-15 at 15:51 +0100, A M Lavezzi wrote:
> > Hello
> >
> > I have this problem. I have a large matrix of this sort:
> >
> >  > prova
> >       [,1] [,2] [,3] [,4]
> > [1,]    3    3    3    3
> > [2,]    3    3    3    1
> > [3,]    1    3    3    3
> > [4,]    1    1    1    3
> > [5,]    3    1    1    3
> > [6,]    3    1    1    3
> > [7,]    1    3    1    3
> > [8,]    1    3    3    3
> >
> > What I want to do is to count the number of
> > sequences of ones and stack the results in a
> > vector, which I will subsequently use to build an istogram (or a density)
> >
> > I mean: in the matrix "prova" I have two
> > sequences of length two in column 1, one sequence
> > of length three in column 2, one sequence  of
> > length four in column 3 and one sequence of
> > length one in column 4. (I know I can actually
> > turn the matrix into a vector by using rep(prova))
> >
> > I would like to get to a vector such as : xx = [1,2,1,1]
>
>I presume a typo above and that it should be:
>
>   xx = [2,1,1,1]
>
>?
>
>If so:
>
> > unlist(lapply(apply(prova, 2, rle),
>                 function(x) length(x$lengths[x$values == 1])))
>[1] 2 1 1 1
>
>
>See ?rle to get the basics of identifying runs of values.
>
>HTH,
>
>Marc Schwartz

===============================
Andrea Mario Lavezzi
Dipartimento di Studi su Politica Diritto e Società
Piazza Bologni 8
90134 Palermo
tel. ++39 091 6625600
fax ++39 091 6112023
skype: lavezzimario
email: lavezzi at unipa.it
web: http://www.unipa.it/~lavezzi
=============================== 



More information about the R-help mailing list