2014-09-19 4 views
1

질문 표에 data.table을 삽입하는 방법에 대해 사과드립니다. I 사용 시도여러 열이있는 고유 한 행에 고유 한 ID 이름을 할당하십시오.

ID phylum class family order genus species 
1 A  B  C  D  E  NA 
1 A  B  C  D  E  NA 
2 A  B  C  D  NA NA 
3 A  B  C  D  E  F 
2 A  B  C  D  NA NA 
3 A  B  C  D  E  F 

예에 대한 고유 ID를 할당 할

phylum class family order genus species 
A  B  C  D  E  NA 
A  B  C  D  E  NA 
A  B  C  D  NA NA 
A  B  C  D  E  F 
A  B  C  D  NA NA 
A  B  C  D  E  F 

난 각 정합 행 싶습니다

은이 같은 로우 톤과 데이터 세트를 가지고 GRP는 다양한 방식으로 작동하지만 작동하지 않습니다. 예 : DT2 = DT [I :. = GRP = 키 (DT)를 기준으로] I는 다른 샘플에보고했지만 모두가 ID를 할당하는 단일 또는 단 2 열 값에 기초하여 내가 원하는

6 개의 다른 것들을 사용합니다. 어떤 도움이라도 대단히 감사합니다.

+1

가'키 (DT) 무엇 '여기? ': ='는 참조로 할당합니다. 'DT2' btw에 다시 할당 할 필요는 없습니다. – Arun

답변

6

이 기본 R있는 솔루션 :

df2 <- unique(df) 
df2$ID <- 1:nrow(df2) 
merge(df, df2) 

또는 data.table 사용 :

dt[, ID := .GRP, by = names(dt)] 
+0

한 번의 급습에서 이렇게 할 방법이 없습니까? 이런 식으로하기 위해 제거해야 할 칼럼이 너무 많습니다. 고유 한 식별에 사용할 열을 지정할 수 있다면 도움이 될 것입니다. –

+0

'df2 <-unique (df [, tokeep])'시도'tokeep'은 어느 컬럼을 유지하고 싶은지 나타내는 배열이다. – nicola

+0

다른 모든 열은 삭제됩니까? 나는 단지 비슷한 분류군을 표기하고 싶지만 열이 어디서 왔고 얼마나 많은 것을 보았는지를 명기하고 싶습니다. 게다가 다른 몇 가지. –