2017-04-26 6 views
2

내 R 문제가 같은 수치 벡터 (또는 데이터 프레임)에서 이동하는 방법입니다, 그들 모두를 검색, 연속 시퀀스계수의 덩어리가 간헐적으로 숫자 순서로 크기 ​​

a <- c(1,2,3,4,5,7,8,12,13,14,16,20) 

확인 자신의 길이를 얻을, 분, 이 같은 최대 반환 일 : 세그먼트의

num count 
    1 1  5 
    2 5  5 
    3 7  2 
    4 8  2 
    5 12  3 
    6 14  3 
    7 16  1 
    8 20  1 
num 각 세그먼트의 최소 및 최대 인

count 길이.

그룹화가 정수에서 작동하지 않으므로 어떻게해야합니까? 이 일을

답변

2

한 가지 방법 :

chunkstart <- which(c(TRUE, diff(a) > 1)) 
chunkend <- c(chunkstart[-1] - 1, length(a)) 
chunksize <- chunkend - chunkstart + 1 
data.frame(num = c(rbind(a[chunkstart], a[chunkend])), count = rep(chunksize, each = 2))