2013-08-22 17 views
6

Ich habe einen Datenrahmen mit vielen Spalten, einschließlich Quarter und CustomerID. In diesem möchte ich die einzigartigen Kombinationen von Quarter und CustomerID identifizieren.So finden Sie eindeutige Feldwerte aus zwei Spalten im Datenrahmen

Für zB:

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") 

Was ich will, ist:

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

Wie dies in R zu tun? Ich versuchte unique Funktion, aber es funktioniert nicht, wie ich will.

+0

Es sieht aus, als hätte er die einzigartige '(Quarter, CustomerID)' Paare will. Es ist jedoch unklar, wie er diese neuen Daten mit einem möglicherweise anders dimensionierten Datenrahmen spalten möchte. –

+0

Ich möchte beide Spalten mit ihrem eindeutigen Wert, dh wenn die CustomerID 1234 im Q3 2009 erscheint sollte es kommen. aber wenn ich einzigartig verwende, wird es nur 2009 Q1 dauern. – snehal

+0

Ich habe hier 2009 Q1 und 2009 Q3 beide haben CustomerID 1234 so, wenn ich einzigartige Funktion verwendet es dauert nur einmal ich will es sollte sowohl 2009 Q1 und 2009 Q3 kommen. Danke für die schnelle Antwort. – snehal

Antwort

10

Die langen Kommentare unter dem OP werden schwer zu folgen. Sie suchen nach duplicated wie von @RomanLustrik hingewiesen. Verwenden Sie es, Ihre ursprüngliche data.frame wie diese Teilmenge ...

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

Vielen Dank, ich habe die Ausgabe, wie ich wollte, mit Hilfe Ihres Befehls @ SimonO101. – snehal

+0

@ user2492230 Sie sind willkommen. Ich bin froh, dass wir das klären konnten! –

2

Eine weitere einfache Möglichkeit SQL Anfragen von R zu verwenden, überprüfen Sie die folgenden Codes. Dies setzt voraus, masterdf ist der Name der ursprünglichen Datei ...

library(sqldf) 
sqldf("select Quarter, CustomerID from masterdf group by 1,2") 
Verwandte Themen