dplyr :: select вызовы функции с помощью MASS :: select

Если я загружаю пакет MASS :

 library(MASS) 

затем загрузите попытку запуска dplyr::select , я получаю сообщение об ошибке:

 library(dplyr) mtcars %.% select(mpg) # Error in select(`__prev`, mpg) : unused argument (mpg) на library(dplyr) mtcars %.% select(mpg) # Error in select(`__prev`, mpg) : unused argument (mpg) 

Как я могу использовать dplyr::select с загруженным пакетом MASS ?

Как сказал Паскаль, следующие работы

 require(MASS) require(dplyr) mtcars %>% dplyr::select(mpg) 

Это происходит со мной чаще, чем я должен признать. dplyr сталкиваются с MASS::select , plyr::summarise и stats::filter между прочим, особенно при загрузке пакетов, которые загружают одну из этих библиотек через библиотеку (они не должны, но некоторые по-прежнему делают) или когда вы загружаете dplyr в ваш .Rprofile (не надо!). И это может привести к довольно неясным проблемам, а не всегда сообщению об ошибке, особенно конфликтам с plyr .

Я только недавно узнал о функции conflicts() . Это полезно, но конфликты «over-reports», когда два пакета имеют одинаковые функции, например, tidyr :: %>% и dplyr :: %>% .

Поэтому я написал функцию, чтобы сказать мне, если я сойду с ума или на самом деле конфликт вызывает текущую ошибку. Он не только проверяет наличие конфликтов, но проверяет, является ли определенный желаемый пакет «сверху» и действительно ли тела функции отличаются.

Он делает это для dplyr по умолчанию, но вы можете указать другой пакет, используя параметр want_package . Например, я часто получаю recode помощью recode и alpha , которые повторно используются во многих пакетах.

Использование просто: amigoingmad() .

По умолчанию он также автоматически «фиксирует» вещи, если dplyr не «сверху», используя следующие команды:

 detach("package:dplyr", character.only = TRUE) library("dplyr", character.only = TRUE) 

Обратите внимание, что функция будет сообщать, если заданная пользователем функция блокирует dplyr, но не исправляет это автоматически в целях безопасности (просто удалите функцию в этом случае).

На данный момент это решение не вызвало у меня никаких проблем. Конечно, я бы не стал использовать это в производственном коде, но когда вы отлаживаете .Rmd и, возможно, случайно испортили заказ на загрузку, это быстрый способ узнать.

Если вы хотите это в пакете:

 devtools::install_github("rubenarslan/formr") 

Если вы сначала загрузите библиотеку MASS а затем вторую dplyr

 library (MASS) library (dplyr) 

то первая версия функции select в ваших searchpaths () сеанса searchpaths () будет dplyr библиотеке dplyr .

следовательно

 select(mtcars, mpg) 

будет работать как

 dplyr::select(mtcars, mpg) 
  • Как получить метки данных для гистограммы в ggplot2?
  • R управления памятью / не может выделить вектор размера n Mb
  • Отсутствует легенда с ggplot2 и geom_line
  • Проверьте, содержит ли вектор данный элемент
  • R: сравнить все столбцы попарно в матрице
  • Использование распространения с повторяющимися идентификаторами для строк
  • Запуск приложения Shiny после ввода пароля
  • Ошибка в : объект типа «закрытие» не является подмножеством
  • Почему `vapply` безопаснее, чем` sapply`?
  • Непосредственное создание фиктивной переменной, заданной в разреженной матрице в R
  • Условное двоичное соединение и обновление по ссылке с использованием пакета data.table
  • Interesting Posts

    Нет типа данных для узла: org.hibernate.hql.internal.ast.tree.IdentNode HQL

    Изменение интерфейса Windows XP с французского на английский

    Создание имени переменной с использованием значения String

    Загрузка с USB / DVD в режиме EFI

    Как ограничить зарядку аккумулятора на Surface Pro (2) или Windows 8 (.1)?

    Как создать обработчик событий для программно созданного объекта в VB.NET?

    Visual Studio блокирует выходной файл на сборке

    в блоке «using» есть SqlConnection, закрытое по возврату или исключению?

    В чем разница между статическим методом и нестатическим методом?

    Как установить тайм-аут на метод recv сокета python?

    Каков правильный счетчик производительности для получения процессора и использования памяти в процессе?

    Dnsmasq без изменения файла / etc / hosts вручную

    Невозможно использовать более чем одну группу процессоров для моих streamов в приложении C #

    Microsoft Word. Когда я нажимаю вкладку, она больше не отбрасывает маркер в списке

    Как программно запускать щелчок по ссылке Используя jquery?

    Давайте будем гением компьютера.