Своеобразная ошибка в фильтре dplyr - PullRequest
0 голосов
/ 13 июня 2018

Я работаю над книгой ggplot Хэдли Уикхема за 2015 год.В нем есть строка кода (пакет ggplot2 уже загружен):

presidential <- subset(presidential, start > economics$date[1])

, и он отлично работает.Я попытался заменить подмножество фильтром, как в:

library(dplyr)
presidential <- filter(presidential, start > economics$date[1])

, и я получаю ошибку:

Error in `>.default`(start, x) : 
  comparison (6) is possible only for atomic and list types

Если сравнение неверно, не должно ли это также повлиять на подмножество?

1 Ответ

0 голосов
/ 13 июня 2018

Я думаю, что нашел проблему.Если я явно укажу dplyr ::, как показано ниже, то он будет работать:

presidential <- dplyr::filter(presidential, start > economics$date[1])

Это означает, что какая-то другая функция фильтра переопределяет функцию из dplyr.

В коде, который я опубликовалранее я указывал строку библиотеки (dplyr) непосредственно перед строкой кода, которая, как мне казалось, вызывала проблему, но на самом деле dplyr был загружен ранее как часть моего сценария запуска.

Похоже, что пакет статистики, который также имеет функцию фильтра, был загружен после загрузки dplyr (потому что dplyr был в моем сценарии запуска) и, следовательно, stats :: filter masked dplyr :: filter.

Мне действительно следовало бы сначала проверить это перед публикацией, но это действительно кое-что о влиянии, которое может оказать загрузка пакетов в сценарии запуска.Другой сложный момент заключается в том, что в этой ситуации мы не получаем никаких сообщений о произошедшей маскировке.

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