找出加入客户后3天的订单数量和每个客户的订单价值?

时间:2019-05-19 11:47:06

标签: r dplyr

以下是样本数据集:

user_id  first_payment_date  order_date  order_id   order_value
1         01/01/19           02/01/19      1          10
1         01/01/19           03/01/19      2          20
1         01/01/19           07/01/19      3          30
2         15/01/19           17/01/19      4          50
2         15/01/19           17/01/19      5          60
2         15/01/19           20/01/19      6          70

我正尝试在 first_payment_date 的前3天内找出每个客户的订单数和订单价值。输出如下所示:

user_id orders  order_value
1          2    30
2          2    110

我正在寻找r中的解决方案。

1 个答案:

答案 0 :(得分:3)

一种dplyr可能是:

df %>%
 mutate_at(2:3, list(~ as.Date(., format = "%d/%m/%y"))) %>%
 mutate(cond = as.numeric(order_date - first_payment_date) <= 3) %>%
 filter(cond) %>%
 group_by(user_id) %>%
 summarise(orders = n(),
           order_value = sum(order_value))

  user_id orders order_value
    <int>  <int>       <int>
1       1      2          30
2       2      2         110