以下是样本数据集:
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中的解决方案。
答案 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