我有一个数据集,其中包含有关客户生命周期的信息。我想创建一个时间轴,其中包含日期(这是一个日期_ &关系长度(天或月)的第一个,在之间和第二个客户的生命周期。时间线应该看起来如下:first_date - first_lifetime_length - defection_date - defection_length - reactivation_date - second_lifetime_length - last_date
问题是数据位于两个不同的数据集中(customer_data和purchase_history),其中客户通过三个ID连接。数据集的顶部如下所示(目前仅包括相关变量),左侧为customer_data,右侧为purchase_history。
ID first_date ID date_of_purchase
1 2014-01-13 1 2014-09-12
2 2016-03-01 1 2014-11-12
3 2016-06-13 1 2015-02-13
4 2013-12-02 1 2017-02-14
5 2017-03-27 1 2018-12-13
6 2016-04-29 1 2019-04-15
7 2017-11-01 2 2016-03-01
8 2016-04-07 3 2016-06-13
9 2016-02-29 3 2016-09-20
10 2014-12-15 3 2016-10-20
到目前为止,我编写的代码如下所示:
# Timeline variables needed for further calculation ----
## First purchase date
customer_data$first_date
## End of First-LT, begin defection period
# A customer is considered defected after not purchasing for 365 days
purchase_history <- purchase_history %>%
group_by(ID) %>%
mutate(defected = if_else(date_of_purchase - lag(date_of_purchase) > 365, 1, 0))
## Defection date
purchase_history$defection_date <- if_else(purchase_history$defected==1, purchase_history$date_of_purchase, NA)
最后,我想把所有的变量都和ID连接起来,并保留所有的purchase_history。有人能帮我创建相关的变量吗?
亲切的问候
2条答案
按热度按时间mklgxw1f1#
加入您的第一个 Dataframe “第一次购买”与“购买历史”不失去任何客户
lsmd5eda2#
不确定最终目标是什么,但这可能是一个开始。
使用完全连接(
merge
)和修改的 df2,包括 defection_date。数据