【发布时间】:2017-05-23 05:46:48
【问题描述】:
我有一个包含 2 列的大型销售数据集(> 1 M 行):
- Client_ID
- Purchase_Date
客户 ID 经常重复。
对于每一行,我想计算“客户在过去 30 天内购买了多少次”。
- Client_ID
- Purchase_Date
- Freq_Last_30_Days
目前,我遍历每一行并使用以下标准进行 nrow() 计数:
data$Client_ID == data$Client_ID[i]
data$Purchase_Date < data$Purchase_Date[i]
data$Purchase_Date >= data$Purchase_Date[i] - 30
考虑到数据库的大小,这需要花费数小时才能完成。有没有更有效的方法来查找频率而不使用 for 循环?
【问题讨论】:
-
搜索动物园图书馆的rollapply。
-
另外,您可以查看here