Существует отличный пакет, который помогает при конфликтах пакетов, который называется конфликта .
Если вы наберете search()
в своей консоли, вы увидите упорядоченный вектор пакетов, который называется «список поиска». Когда вы вызываете select
, R выполняет поиск по этому «пути поиска» и сопоставляет первую функцию с именем select
. Когда вы вызываете dplyr::select
, вы вызываете его напрямую из пространства имен dplyr
, поэтому функция работает, как и ожидалось.
Вот пример использования conflicted
. Мы загрузим растр и dplyr, которые оба имеют функцию select
.
library(dplyr)
library(raster)
library(conflicted)
d <- data.frame(a = 1:10, b = 1:10)
Теперь, когда мы вызываем select
, нам предлагается точный конфликт:
> select(d, a)
Error: [conflicted] `select` found in 2 packages.
Either pick the one you want with `::`
* raster::select
* dplyr::select
Or declare a preference with `conflict_prefer()`
* conflict_prefer("select", "raster")
* conflict_prefer("select", "dplyr")