在我过滤数据后,环境显示相同的数据大小

时间:2017-08-23 20:30:16

标签: sql r database sqldf r-package

enter image description here

由于此图片中的问题显示,在我过滤数据两次后,buyer_dormantbuyer_converted仍然与buyer_before_20161222具有相同的obs

控制台在过滤过程中没有显示任何错误。所以我对发生的事情感到很困惑。

当我尝试测试数据以查看哪里出错时,我在表order_amount==0 & 20170222<order_date<=20170522中过滤了buy_converted。结果应该是 no result ,但它返回order_amount=1

我对自己的病情非常困惑,我不知道自己错过了什么。

非常感谢任何建议!

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 ) 

希望有所帮助!