Untested: c(TRUE, b[-1] != b[-length(b)]) gives you the (logical) indexes of the beginnings of the runs c(b[-1] != b[-length(b)], TRUE) gives you the (logical) indexes of the ends of the runs
> -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of Sean Davis > Sent: Thursday, January 27, 2005 2:14 PM > To: r-help > Subject: [R] Finding "runs" of TRUE in binary vector > > I have a binary vector and I want to find all "regions" of > that vector that are runs of TRUE (or FALSE). > > > a <- rnorm(10) > > b <- a<0.5 > > b > [1] TRUE TRUE TRUE FALSE TRUE FALSE TRUE TRUE TRUE TRUE > > My function would return something like a list: > region[[1]] 1,3 > region[[2]] 5,5 > region[[3]] 7,10 > > Any ideas besides looping and setting start and ends directly? > > Thanks, > Sean > > ______________________________________________ > 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 > ______________________________________________ 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