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) <[EMAIL PROTECTED]> Fax-to-email: +44 (0)870 094 0861 Date: 11-Mar-05 Time: 11:37:50 ------------------------------ XFMail ------------------------------ ______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
