2016-11-25 1 views
1

여러 열의 조건에 따라 그룹을 식별하는 명확한 방법을 시도하고 있습니다.r 조건을 기반으로 그룹을 식별하십시오.

예를 들어 우리가 날짜와 다른 숫자 열을 기준으로 정렬 포인트의 테이블이 상상 :

DT <- data.table(a = paste0("Date", 1:10), V1 = c(1, 2, 11, 9, 11, 11, 2, 2, 11, 11)) 

     a V1 
1: Date1 1 
2: Date2 2 
3: Date3 11 
4: Date4 9 
5: Date5 11 
6: Date6 11 
7: Date7 2 
8: Date8 2 
9: Date9 11 
10: Date10 11 

우리는 다음 표 얻는 새로운 그룹이 V1 > 10에 값마다 :

  a V1 ID 
1: Date1 1 1 
2: Date2 2 1 
3: Date3 11 2 
4: Date4 9 2 
5: Date5 11 3 
6: Date6 11 4 
7: Date7 2 4 
8: Date8 2 4 
9: Date9 11 5 
10: Date10 11 6 

테이블이 3 백만 포인트 이상이므로 루프가 필요하지 않습니다. 어떤 도움이 필요합니까? 대단히 감사합니다 !!!

+0

나는이 질문이 있었다 알고 'ID'열을 만드는 데, 그것은 0에서 시작하는 경우에 1을 추가하고 (:=)를 할당 논리적 vector (V1 > 10)에 cumsum 필요 이 사이트 어딘가에 있지만 적절한 키워드를 찾는 데 어려움을 겪었습니다. '누적' –

답변

1

우리는 42 @

DT[, ID := cumsum(V1>10)+1] 
DT$ID 
#[1] 1 1 2 2 3 4 4 4 5 6 
+0

쉬운 방법이 있다는 것을 알고있었습니다! 나는'which'와 인덱스에 어려움을 겪고있었습니다! 고마워요 –

+0

@GeraldT 문제 없습니다. 기꺼이 도와 줘. [this] (http://stackoverflow.com/help/someone-answers)를 읽을 수도 있습니다. – akrun