2013-08-22 4 views
6

QuarterCustomerID을 비롯한 많은 열을 포함하는 데이터 프레임이 있습니다. 여기서는 QuarterCustomerID의 고유 한 조합을 식별하고자합니다. 예를 들어데이터 프레임의 두 열에서 고유 한 필드 값을 찾는 방법

는 :

masterdf <- read.csv(text = " 
    Quarter, CustomerID, ProductID 
    2009 Q1, 1234,  1 
    2009 Q1, 1234,  2 
    2009 Q2, 1324,  3 
    2009 Q3, 1234,  4 
    2009 Q3, 1234,  5 
    2009 Q3, 8764,  6 
    2009 Q4, 5432,  7") 

내가 원하는 것은 :

FilterQuarter  UniqueCustomerID 
2009 Q1   1234 
2009 Q2   1324 
2009 Q3   8764 
2009 Q3   1234 
2009 Q4   5432 

어떻게 R에서이 작업을 수행하려면? 나는 unique 기능을 시도했지만 내가 원하는대로 작동하지 않습니다.

+0

... masterdf 원본 파일의 이름입니다 가정합니다. 그러나이 새로운 데이터를 차원이 다른 데이터 프레임으로 열 바인딩하려는 경우가 확실하지 않습니다. –

+0

거기에 고유 한 값이있는 두 개의 열이 모두 필요합니다. 예를 들어 CustomerID 1234가 2009 년 3 분기에 있으면이 값이 올 것입니다. 하지만 내가 유일하게 사용했다면 2009 Q1 만 걸릴 것입니다. – snehal

+0

나는 2009 년 1 분기와 2009 년 3 분기에 모두 CustomerID 1234를 편집 했으므로 고유 기능을 사용하면 2009 년 1 분기와 2009 년 3 분기에 모두 원한다. 빠른 응답에 감사드립니다. – snehal

답변

10

OP의 긴 코멘트는 계속 따라하기가 어렵습니다. @RomanLustrik으로 지적되는 duplicated을 찾고 있습니다.

masterdf[ ! duplicated(masterdf[ c("Quarter" , "CustomerID") ]) , ] 
# Quarter CustomerID 
#1 2009 Q1  1234 
#3 2009 Q2  1324 
#4 2009 Q3  1234 
#6 2009 Q3  8764 
#7 2009 Q4  5432 
+0

나는 당신의 명령 @ SimonO101의 도움으로 원했던 결과를 얻었습니다. – snehal

+0

@ user2492230 당신은 오신 것을 환영합니다. 우리가 이것을 해결할 수있어서 기쁩니다! –

2

또 다른 간단한 방법은, R에서 SQL 쿼리를 사용하여 아래의 코드를 확인하는 것입니다 ...이 같은 원래 data.frame를 서브 세트를 사용합니다. 이것은 그가 유일한`(분기, CustomerID를)`쌍을 원하는 것 같습니다

library(sqldf) 
sqldf("select Quarter, CustomerID from masterdf group by 1,2") 
관련 문제