2016-03-09 43 views
0

我正在处理一大组客户数据,并试图找出客户每月访问的商店的平均数量。在我的数据中,我为每个客户和他们访问的商店代码都有唯一的识别号码。我的数据帧的样品看起来象下面这样:R-如何根据另一列对唯一行数进行计数

sitecode<-c(1000,1000,1001,1000) 
productcode<-c('X','X','Y','X') 
customercode<-c('A','B','A','C') 
Date<-c('01/01/2016','02/01/2016','03/01/2016','04/01/2016') 
data1<-data.frame(customercode,Date,productcode,sitecode) 

在此基础上,我想什么有是一个简单的表格,为客户ABC与他们参观了卖场的唯一的号码是2 A,1 B和C 。 你能帮我吗?

+0

'table(data1 $ customercode)'? – mtoto

+0

'tapply(data1 $ sitecode,data1 $ customercode,function(x)length(unique(x))''? – Frank

+0

@mtoto这将无法正常工作。例如,客户B可以访问同一个网站两次,所以表(data1 $ customercode)将给出2的B.但在这种特殊情况下,由于客户B访问的网站的唯一数量是1,我希望看到1. –

回答

0
data1 
# customercode  Date productcode sitecode 
# 1   A 01/01/2016   X  1000 
# 2   B 02/01/2016   X  1000 
# 3   A 03/01/2016   Y  1001 
# 4   C 04/01/2016   X  1000 


result=table(data1$customercode,data1$sitecode) 
result 

    1000 1001 
A 1 1 
B 1 0 
C 1 0 

希望这在一定程度上有所帮助。

相关问题