В сравнении этих типов не реализована ошибка при фильтрации строки - PullRequest
0 голосов
/ 09 апреля 2019

Попытка отфильтровать строку df по заданному выводу из предыдущего запроса -

sql = 'select max(id) from drivers' возвращает 10000

У меня есть набор идентификаторов из CSV, и я хотел быотфильтровывать из данных все рефералы, у которых идентификатор реферала превышает max(id) = 10000 в приведенном выше запросе.

В моем коде я имею:

library(tidyverse)

referrals_1 <- import(csv)

df <- referrals_1 %>%
  filter(referrals_2$referral_id < max_driver_id)

и продолжаю получать Error in referrals_2$referral_id < max_driver_id : comparison of these types is not implemented

Когда я проверяю typeof() обоих max_driver_id и shopper_referral_id Iполучить "list".Я немного сбит с толку относительно того, что делать, чтобы отфильтровать строки, которые имеют более высокий идентификатор, чем переменная max id.

1 Ответ

0 голосов
/ 09 апреля 2019

Трудно сказать точно без минимального воспроизводимого примера, но похоже, что вы где-то ссылаетесь на неправильный фрейм данных. Рассмотрим:

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, который вы создаете в результате фильтра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...