一时也想不到比较好的方法,这个也能用。抛砖引玉吧[s:11]
<br />
bed <- data.frame(from=c(100 , 250 , 350 , 520 , 650 , 850) ,<br />
to=c(200, 300, 400, 600, 720, 900),<br />
val=c(3, 5, 4, 6, 6, 7))</p>
<p>n <- nrow(bed)<br />
j <- bed$from[-1] - bed$to[-n] <= 100</p>
<p>fac <- 1<br />
nfac <- 1<br />
for (i in j) {<br />
nfac <- ifelse(i, nfac, nfac+1)<br />
fac <- c(fac, nfac)<br />
}</p>
<p>data.frame(from=tapply(bed$from, fac, min),<br />
to=tapply(bed$to, fac, max),<br />
val=tapply(bed$val, fac, mean))<br />
</p>