R中每位客户的日期计数

时间:2015-03-02 19:12:02

标签: r

对于以下数据,

custid <- c(1,1,1,2,2,5,6,8,8,8)

date <- c(20130401,  20130403,  20130504,   20130508,   20130511,   20130716,   
      20130719, 20130423,   20130729,   20130707) 

money <- c(1, 2, 45, 3.56, 32.39, 1, 2, 3.90, 4, 8.5)

file <- data.frame(custid, date, money)

如何获得此输出?我通过计算日期来获取Trans_count值。感谢。

custid  Trans_count
1       3
2       2
5       1
6       1
8       3

1 个答案:

答案 0 :(得分:0)

您可以尝试

 aggregate(cbind(Trans_count=date)~custid, file, length)

或者

library(data.table)
setDT(file)[, list(Trans_count=.N), .(custid)]

或者

library(dplyr)
file %>% 
    group_by(custid) %>% 
    summarise(Trans_count=n())

或者如果您需要矢量输出

table(file$custid)