我的数据框包含许多列,包括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
功能,但它无法正常工作。
答案 0 :(得分:10)
OP下的长篇评论越来越难以理解。您正在寻找 @RomanLustrik 所指出的duplicated
。使用它来像这样对原始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
答案 1 :(得分:2)
另一种简单的方法是使用来自R的SQL
个查询,检查下面的代码。
这假设masterdf是原始文件的名称......
library(sqldf)
sqldf("select Quarter, CustomerID from masterdf group by 1,2")