[R] Boundaries of consecutive integers

arun smartpink111 at yahoo.com
Tue May 14 06:25:32 CEST 2013


#or
 indx<- c(0,cumsum(diff(test)!=1))
aggregate(test,list(indx),function(x) c(min(x),max(x)))[,-1]
#     [,1] [,2]
#[1,]    1    5
#[2,]   22   29
#[3,]   33   40

#or
dat1<- data.frame(test,indx)
library(plyr)
 ddply(dat1,.(indx),summarize, Min=min(test),Max=max(test))[,-1]
#  Min Max
#1   1   5
#2  22  29
#3  33  40

A.K.




----- Original Message -----
From: arun <smartpink111 at yahoo.com>
To: Lizzy Wilbanks <egwilbanks at ucdavis.edu>
Cc: R help <r-help at r-project.org>
Sent: Tuesday, May 14, 2013 12:11 AM
Subject: Re: [R] Boundaries of consecutive integers



May be:
 matrix(c(test[c(TRUE,diff(test)>1)],test[c(which(diff(test)>1),length(test))]),ncol=2)
#     [,1] [,2]
#[1,]    1    5
#[2,]   22   29
#[3,]   33   40
A.K.

----- Original Message -----
From: Lizzy Wilbanks <egwilbanks at ucdavis.edu>
To: r-help at r-project.org
Cc: 
Sent: Monday, May 13, 2013 9:18 PM
Subject: [R] Boundaries of consecutive integers

Hi folks,

I'm trying to accomplish something that seems like it should be
straightforward, but I've gotten tied in knots trying to figure it
out.  A toy example of my issue is below.  I've played with diff and
can't seem to figure out a systematic solution that will give me the
two column output independent of the number of breakpoints in the
vector...

test<-c(1:5, 22:29,33:40)
example.output<-matrix(c(1,5,22,29,33,40),nrow=3,ncol=2,byrow=TRUE)


Any ideas?


Thanks!
Lizzy

--
"The obvious goal of any bacterium is to become bacteria."

Lizzy Wilbanks
Graduate Student, Eisen and Facciotti Labs
UC Davis, Microbiology Graduate Group

______________________________________________
R-help at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.




More information about the R-help mailing list