筛选行时未实现这些类型的比较错误

时间:2019-04-09 20:29:29

标签: r

尝试通过上一个查询的给定输出过滤df行-

sql = 'select max(id) from drivers'返回10000

我有一组来自csv的引荐ID,我想过滤所有引荐ID大于上述查询的max(id)的引荐。

在我的代码中,我有:

shopper_referrals_2 <- shopper_referrals_1 %>% filter(shopper_referrals_2$shopper_referral_id < max_driver_id)

并继续获得Error in shopper_referrals_2$shopper_referral_id < max_driver_id : comparison of these types is not implemented

当我同时检查typeof()max_driver_id的{​​{1}}时,我得到shopper_referral_id。我对于如何过滤ID大于max id变量的行感到有些困惑。

1 个答案:

答案 0 :(得分:0)

如果没有最小的可复制示例,很难确切地说出,但是看起来您在某个地方引用了错误的数据框。考虑:

shopper_referrals_2 <- shopper_referrals_1 %>%
  filter(shopper_referrals_2$shopper_referral_id < max_driver_id)

如果您尝试过滤shopper_referrals_1语句中的shopper_referrals_2以创建shopper_referrals_2的目的,filter的目的是什么?乍一看,该代码应更正为:

shopper_referrals_2 <- shopper_referrals_1 %>%
      filter(shopper_referral_id < max_driver_id)

其中shopper_referrals_1是您要过滤的df-shopper_referral_id是您要在shopper_referrals_1中过滤的列,而shopper_referrals_2是您要创建的新df过滤器的结果。