2016-07-01 5 views
0

행당 첫 번째 열 (인덱스)의 값을 기반으로 중복 행을 신속하게 식별하는 데 도움이되는 새로운 데이터 프레임 열을 만들고 싶습니다. 내 dataframe (DF)이 거의 18000 행-관찰을 가지고 있으며, 새로운 열이라고 가정하면 "독특한는"나는 ... 오히려 실패 다음 시도 데이터 프레임에서 고유 한 행 찾기 R

df$unique = ifelse(df[row.names(df):1]==df[row.names(df)-1:1], "YES", "NO") 

코드 뒤에 이론적 근거는 그 사이의 비교 동일한 열의 이전 셀과 동일한 열의 셀은이 값이 일치하지 않는 한 고유 항목을 제공 할 수 있습니다.

내 dataframe

index num1 num2 
1  12 12 
1  12 12 
2  14 14 
2  14 14 
2  14 14 
3  18 18 
4  19 19 
+2

귀하의 질문은 매우 명확하지 않다. 재현 가능한 예제와 원하는 출력을 제공하십시오. –

답변

1

당신은 duplicated 기능을 사용할 수 있습니다. 고유하지 않은 열의 첫 번째 발생은 중복이 아니므로 처음부터 끝까지 검색하여 두 번 필요합니다.

# Toy data, where the first two rows are identical, the third row is unique 
df <- data.frame(a = c(1, 1, 1), b = c(1, 1, 2)) 

# Find unique columns 
df$unique <- !(duplicated(df) | duplicated(df, fromLast = TRUE)) 

출력 :

> df 
    a b unique 
1 1 1 FALSE 
2 1 1 FALSE 
3 1 2 TRUE 
관련 문제