Skip to content

Calculating lengths of runs of 0 or 1 sequences in meteorological data

3 messages · Ehsan Karim, Detlef Steuer, (Ted Harding)

#
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.

Thank you for your time.

_____________________________

Mohammad Ehsanul Karim
E-mail: wildscop at yahoo.com
Web: http://snipurl.com/ehsan
ISRT, University of Dhaka, BD
#
Mohammad,

?rle

is your friend, I guess.

Detlef

On Fri, 11 Mar 2005 03:07:56 -0800 (PST)
Mohammad Ehsanul Karim <wildscop at yahoo.com> wrote:

            
#
On 11-Mar-05 Mohammad Ehsanul Karim wrote:
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 at nessie.mcc.ac.uk>
Fax-to-email: +44 (0)870 094 0861
Date: 11-Mar-05                                       Time: 11:37:50
------------------------------ XFMail ------------------------------