#r
#r
Вопрос:
Я использую пакет бенчмаркинга для запуска модели анализа охвата данных с использованием функции dea на нем. Кроме того, я использую пакет nonparaeff для частичной границы, в котором также есть функция, называемая dea. Это сходство в функции имени приводит к этой «ошибке»:
Прикрепление пакета: ‘nonparaeff’ Следующий объект замаскирован из ‘package:Benchmarking’:
Итак, возможно ли использовать оба пакета одновременно или нет?
Комментарии:
1. Какой объект маскируется из package: Бенчмаркинг?
Ответ №1:
Да, вы можете использовать оба пакета.
Прикрепление пакета: ‘nonparaeff’ Следующий объект замаскирован из ‘package:Benchmarking’:
Это сообщение об ошибке в основном означает, что пакет, который вы загрузили последним (в данном случае nonparaeff
), маскирует функции из Benchmarking
.
Первое, что следует упомянуть: все остальные функции без конфликтов имен будут работать так, как ожидалось.
Второе, о чем нужно позаботиться: когда вы просто вызываете dea()
в своем коде сейчас, вы будете вызывать функцию из пакета, загруженного последним. (потому что dea()
функция другого пакета замаскирована этой функцией)
Но, чтобы быть уверенным в вызове правильной функции, вы можете просто записать вызовы функций следующим образом: Benchmarking::dea()
и nonparaeff::dea()
.
Указав packagename::funtionname()
, вы убедитесь, что вызываете именно функцию из указанного пакета. Это не так удобно, как просто вызывать dea()
, но в случае функций с одинаковым именем я бы действительно использовал это для обеих функций. (для предотвращения ошибок)
Я сам довольно часто вызываю свои функции с packagename::funtionname()
— это позволяет избежать ошибок, и еще одним положительным моментом является то, что вы сразу узнаете, посмотрев на код, из какого пакета функция.
Комментарии:
1. Спасибо вам за все, очень помогает!!