Для моего текущего проекта у меня загружены пакеты base
и tidyverse
и еще около 14, и я иногда беспокоюсь об ошибках из-за потенциальных конфликтов, которые я пропустил.
Я только что узнал о функции conflicts()
, которая, я думаю, предназначена для решения этой проблемы. Я нахожу, что я не очень понимаю некоторые из его результатов. Например, с опцией detail = TRUE
:
$`package:maptools`
[1] "coerce" "coerce" "coerce" "coerce" "label" "coerce" "coerce"
Означает ли это, что существует шесть сред, содержащих альтернативные версии coerce
? Если это так, это все конфликты или только те, где конфликтующее имя имеет более высокий приоритет на пути поиска? Давать имя шесть раз без сопутствующей информации о том, где происходят эти конфликты, кажется бесполезным.
Кроме того, некоторые из установленных пакетов, по-видимому, содержат невероятно большое количество конфликтов, и это заставляет меня задуматься, правильно ли я интерпретирую вывод: rlang
с 57, sryyr
с 81, BiocGenerics
с 103.
Наконец, я надеялся на другую организацию, в алфавитном порядке по имени функции, с каждым именем, за которым следует список сред в порядке пути поиска, чтобы вы могли легко проверить наличие потенциальных конфликтов для конкретного Функция (потому что список является алфавитным) и сразу увидеть, какая версия функции активна (потому что среды перечислены в порядке поиска пути). Я полагаю, что мог бы написать такую функцию из этого списка, если я правильно ее интерпретирую, но я бы предпочел, чтобы такая функция уже существовала.