2013-08-22 10 views
6

Mam ramkę danych zawierającą wiele kolumn, w tym Quarter i CustomerID. W tym chcę zidentyfikować unikalne kombinacje Quarter i CustomerID.Jak znaleźć unikalne wartości pól z dwóch kolumn w ramce danych

Dla np

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

co chcę:

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

Jak to zrobić w R? Próbowałem funkcji unique, ale nie działa tak, jak chcę.

+0

Wygląda na to, że chce unikalną '(kwartał, IDKlienta)' parach. Jednak nie jest jasne, w jaki sposób chciałby powiązać kolumny z tymi nowymi danymi z ramą danych o możliwie najmniejszej wielkości. –

+0

Chcę, aby obie kolumny z unikalną wartością, tj. Gdyby identyfikator klienta 1234 był obecny w trzecim kwartale 2009, powinien nadejść. ale jeśli użyję wyjątku, zajmie to tylko Q1 2009. – snehal

+0

Edytowałem tutaj 2009 Q1 i 2009 Q3 obie mają CustomerID 1234, więc jeśli użyłem unikalnej funkcji, to biorąc tylko jeden raz chcę, aby to było zarówno w Q1 2009 i 2009 Q3 2009. Dziękuję za szybką odpowiedź. – snehal

Odpowiedz

10

Długie komentarze w ramach PO stają się trudne do naśladowania. Szukasz duplicated wskazanej przez @RomanLustrik. Użyj go, aby podzbiór oryginalnego data.frame takiego ...

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

Dziękuję, że otrzymałem wyniki tak, jak chciałem, za pomocą komendy @ SimonO101. – snehal

+0

@ user2492230 nie ma za co. Cieszę się, że mogliśmy to rozwiązać! –

2

Innym prostym sposobem jest użycie SQL zapytania od R, sprawdzić kody poniżej. Zakłada masterdf to nazwa oryginalnego pliku ...

library(sqldf) 
sqldf("select Quarter, CustomerID from masterdf group by 1,2") 
Powiązane problemy