Как найти уникальные значения полей из двух столбцов в кадре данных

У меня есть кадр данных, содержащий много столбцов, включая Quarter и CustomerID. В этом я хочу выделить уникальные комбинации Quarter и CustomerID.

Например,

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, но она не работает так, как я хочу.

2 ответа

Длинным комментариям в рамках ОП становится трудно следовать. Вы ищете duplicated, как указано @RomanLustrik. Используйте его для подмножества исходного data.frame, как это...

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


Еще один простой способ - использовать SQL запросы из R, проверьте коды ниже. Это предполагает, что masterdf - это имя исходного файла...

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

licensed under cc by-sa 3.0 with attribution.