Мне не нравится, что у вас могут быть конфликты пакетов R при вызовах функций или конфликты пространств имен. Например, plyr и dplyr имеют функции с одинаковыми именами, поэтому, если они оба загружены, вам нужно знать, какие это функции, чтобы вы могли соответствующим образом присоединять и отсоединять пакеты. Конечно, в этом примере dplyr предназначен для замены plyr, из-за чего возникают конфликты, но гипотетически это может произойти с любым количеством пакетов. Какой кошмар! Это не проблема в Python, потому что вы добавляете префикс к вызову функции с именем/псевдонимом импортированного вами пакета, например. pd.melt()
.
Итак, мой вопрос: есть ли эквивалентный способ сделать это в R? Можно ли управлять конфликтами пакетов, явно ссылаясь на пакет в вызове функции?
Я вижу, что кто-то задал в основном тот же вопрос здесь шесть лет назад, и это остается нерешенным. Единственный предлагаемый ответ — проверить пакет conflicted
. Это начало, обеспечивающее прозрачность конфликтов, но вам придется покопаться в пакете, чтобы найти что-то лучшее (обновление: см. комментарии ниже, чтобы найти ссылки на наиболее полезные функции пакета). по этому вопросу).
Обновить
В комментариях есть ряд решений, в том числе найденных в этот пост. Но, хотя этот пост отвечает на мой вопрос, он его не задает, что может быть одной из причин, по которой я не нашел его в своем поиске. Это начинается с предположения, что вы уже знаете быстрое и грязное решение использования правильного синтаксиса префикса. Так что, возможно, лучше оставить этот пост как не дублирующийся для будущих искателей.
dplyr::mutate()
илиplyr::mutate()
для явной ссылки на пакет в вызове функции. - person Gregor Thomas   schedule 16.12.2020conflicted
, он предлагает функциональность, выходящую за рамки прозрачности. Может быть, вы путаете его с базовой функциейconflicts()
, которая предлагает только прозрачность? Как показано на виньетке с пакетом, вы можете, например, использоватьconflicted::conflict_prefer("filter", "dplyr")
. И в конце (короткой) виньетки есть раздел Альтернативы, в котором упоминаются два других пакета, на которые вы могли бы обратить внимание,import
иmodules
, оба из которых дают решение, более похожее на Python. - person Gregor Thomas   schedule 16.12.2020conflicted
. - person Kaleb Coberly   schedule 16.12.2020