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

After I filter my data, the environment shows it same data size

如图中的问题所示,在我过滤数据两次后,buyer_dormantbuyer_converted仍然具有与buyer_before_20161222相同的obs

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

当我试图测试数据以查看哪里出了问题时,我在 table buy_converted 中过滤了 order_amount==0 & 20170222<order_date<=20170522。结果应该是没有结果,但是它返回了order_amount=1

我对自己的情况很迷茫,不知道自己缺了什么。

任何建议将不胜感激!

您确定您的 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 之前确实购买过东西的客户,也就是休眠买家:

 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 ) 

希望对您有所帮助!