我有一个交易数据集,如下所示。
id purchase_date
A 6/1/18
A 6/2/18
A 6/10/18
A 6/15/18
B 6/4/18
B 6/5/18
C 6/3/18
C 6/7/18
C 6/8/18
C 6/9/18
C 6/12/18
D 6/21/18
D 6/30/18
D 7/1/18
E 3/23/18
我只想为每个ID进行第一笔和最后一笔交易。我的输出应如下所示。
ID FIRST_PURCHASE_DATE LAST_PURCHASE_DATE
A 6/1/18 6/15/18
B 6/4/18 6/5/18
C 6/3/18 6/12/18
D 6/21/18 7/1/18
E 3/23/18 3/23/18
我的实际数据有20万个唯一ID。任何建议将不胜感激!
答案 0 :(得分:4)
按“ ID”分组后,我们可以使用first
中的last
和dplyr
library(dplyr)
df1 %>%
group_by(ID) %>%
summarise(FIRST_PURCHASE_DATE = first(purchase_date),
LAST_PURCHASE_DATE = last(purchase_date))
以上假设'purchase_date'由'ID'排序。如果不是,请转换为arrange
类后再使用Date
和first
last