RE: [R] Calculating lengths of runs of 0 or 1 sequences in meteo

From: Ted Harding <Ted.Harding_at_nessie.mcc.ac.uk>
Date: Fri 11 Mar 2005 - 22:37:50 EST


On 11-Mar-05 Mohammad Ehsanul Karim wrote:
> Dear List Members,
>
> I need some help about programming in S language. My
> problem is as follows:
>
> I have meteorological data (about rainfall measurement
> each day from 1989-2002), say like
> http://www.angelfire.com/ab5/get5/data.rainfall.txt
> or http://www.angelfire.com/ab5/get5/R.rainfall.txt
> in a sequence of 0(denoting dry day)'s and 1(denoting
> wet day)'s. I want to construct a frequency
> distribution table of various lengths
> (1,2,3,4,5,6,7,8,9,or more) of observed wet spells
> (number of successive 1's) and dry spells (number of

> successive 0's) occurring in data.
>
> How should i proceed? Is there any existing
> program/function/package to solve such problem (seems
> like the algorithm should be similar to statistical
> run test)?
>
> Any suggestion, direction, references, help, replies
> will be highly appreciated.

The function 'rle' will do what you ask: see ?rle

For example, if X is your sequence of 0s and 1s,

  table(rle(X)$lengths)

will produce a frequency table of lengths of runs. E.g.

  X<-sample(c(0,1),5000,replace=TRUE)
  table(rle(X)$lengths)

   1 2 3 4 5 6 7 8 9 10 11 1181 644 333 168 83 35 15 5 3 3 3

(But -- see recent postings -- be careful about using

  hist(rle(X)$lengths)

!!!)

Hoping this helps,
Ted.



E-Mail: (Ted Harding) <Ted.Harding@nessie.mcc.ac.uk> Fax-to-email: +44 (0)870 094 0861
Date: 11-Mar-05                                       Time: 11:37:50
------------------------------ XFMail ------------------------------

______________________________________________
R-help@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 Received on Mon Mar 14 09:57:36 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:30:43 EST