jim holtman wrote:
try this:


Oh well, i spent the time writing this so i might as well post my (almost identical) solution,

x<-c(1:3, 6: 7, 10:13)

breaks = c(TRUE, diff(x) != 1)

data.frame(start = x[breaks], length = tabulate(cumsum(breaks)))

Hoping this works,

baptiste


x
[1]  1  2  3  6  7 10 11 12 13
# find breaks
breaks <- c(FALSE, diff(x) != 1)
# now create matrix with groupings (just for visual)
z <- data.frame(x, cumsum(breaks))
# create list with first element of each seq and the length
t(sapply(split(z, z[,2]), function(b) c(b[1,1], nrow(b))))
  [,1] [,2]
0    1    3
1    6    2
2   10    4


On Wed, Jun 10, 2009 at 1:28 PM, Eric Vander Wal <eric.vander...@usask.ca>wrote:

Thanks in advance.
I have a vector of numbers which contain sections that are sequences which
increase by a value of 1 followed by a gap in the data and then another
sequence occurs, etc:

x<-c(1:3, 6: 7, 10:13)

From the vector I need to extract 2 items of information A) the first
number in the sequence (e.g., 1, 6, 10) and B) how many observations were in
each  sequence section (e.g., 3, 2, 4).

v1   v2
1      3
6      2
10    4

It seems simple, but my R skills are still in their infancy so I very much
appreciate the help.
Eric

--
Eric Vander Wal
Ph.D. Candidate
University of Saskatchewan, Department of Biology,
112 Science Place, Saskatoon, SK., S7N 5E2

"Pluralitas non est ponenda sine neccesitate"

______________________________________________
R-help@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<http://www.r-project.org/posting-guide.html>
and provide commented, minimal, self-contained, reproducible code.






______________________________________________
R-help@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.

Reply via email to