dplyr:: выберите функциональные столкновения с МАССОЙ:: выбрать

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

library(MASS)

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

library(dplyr)
mtcars %.%
select(mpg)

# Error in select(`__prev`, mpg) : unused argument (mpg)

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

59
задан 13 June 2014 в 13:32

2 ответа

Как с комментарием KFB выше, одно простое решение, которое я нашел, состоит в том, чтобы (1) загрузить Ваши пакеты, (2) сделать не, волнуются о порядке (который может быть твердым с зависимостями), (3) присвоить приоритет тому, какой бы ни пакет Вы предпочли бы "собственный" пространство имен:

select <- dplyr::select
filter <- dplyr::filter

, Например, посмотрите как environment: namespace изменения ниже:

library(MASS)
select

  function (obj) 
  UseMethod("select")
  <bytecode: 0x7fbe822811b8>
  <environment: namespace:MASS>

select <- dplyr::select
select

  function (.data, ...) 
  {
      UseMethod("select")
  }
  <bytecode: 0x7fbe7c4a2f08>
  <environment: namespace:dplyr>
4
ответ дан 1 November 2019 в 12:29

Изящное решение состоит в том, чтобы использовать conflicted пакет что:

  • генерирует информативные сообщения об ошибках, когда конфликты пространства имен возникают
  • предложения, явная функция для присвоения приоритета пространства имен

Видит пример кода ниже частично от https://github.com/r-lib/conflicted

# install.packages("devtools")
devtools::install_github("r-lib/conflicted")

library(conflicted)
library(dplyr)

# example of informative error message
filter(mtcars, cyl == 8)
#> Error: [conflicted] `filter` found in 2 packages.
#> Either pick the one you want with `::` 
#> * dplyr::filter
#> * stats::filter
#> Or declare a preference with `conflicted_prefer()`
#> * conflict_prefer("filter", "dplyr")
#> * conflict_prefer("filter", "stats")

# example of assigning priority with conflict_prefer function
conflict_prefer("filter", "dplyr")

filter(mtcars, cyl == 8) %>% head(2)
#    mpg cyl  disp  hp drat   wt  qsec vs am gear carb
# 1 18.7   8 360.0 175 3.15 3.44 17.02  0  0    3    2
# 2 14.3   8 360.0 245 3.21 3.57 15.84  0  0    3    4
1
ответ дан 1 November 2019 в 12:29

Другие вопросы по тегам:

Похожие вопросы: