由于此图片中的问题显示,在我过滤数据两次后,buyer_dormant
和buyer_converted
仍然与buyer_before_20161222具有相同的obs
。
控制台在过滤过程中没有显示任何错误。所以我对发生的事情感到很困惑。
当我尝试测试数据以查看哪里出错时,我在表order_amount==0 & 20170222<order_date<=20170522
中过滤了buy_converted
。结果应该是 no result ,但它返回order_amount=1
。
我对自己的病情非常困惑,我不知道自己错过了什么。
非常感谢任何建议!
答案 0 :(得分:0)
您确定您的SQL查询正确吗?对于第一个sql查询,请尝试"SELECT customer_id, order_amount, order_date FROM buyer_before_20161222 WHERE (order_amount <=0) AND (order_date BETWEEN 2016122 AND 20170222)"
并查看是否有效。
如果您只想要所描述的休眠和转换买家组customer_id
,请尝试使用dplyr
编写的以下代码:
在201612222之前购买商品的客户:
buyer_before_2016122 <- order_table %>%
filter(order_amount>=1, order_date < 20161222) %>%
select(customer_id)
在20161222和20170222之间没有购买任何东西的客户,过滤了在20161222之前购买DID的客户,也就是休眠买家:
buyer_dormant <- order_table %>%
filter(between(order_date, 20161222, 20170222), order_amount <= 0,
customer_id %in% buyer_before_2016122$customer_id )
在20170222和20170522之间购买的客户,已过滤为休眠买家,也称为转换买家:
buyer_converted <- order_table %>%
filter(between(order_date, 20170222, 20170522), order_amount >= 1,
customer_id %in% buyer_dormant$customer_id )
希望有所帮助!