Как правильно использовать функции из других пакетов в пакете R
Я немного смущен этим. У меня есть пакет R, который имеет небольшую функцию (а не часть мэра пакета), в которой вызывается функция principal
пакета psych
. Как правильно указать это в DESCRIPTION и NAMESPACE?
Настройка Depends: psych
в DESCRIPTION гарантирует, что пакет psych загружается каждый раз, когда загружается мой пакет. Это работает, но это кажется излишним для такой небольшой части моего пакета.
Настройка Suggests: psych
и ввод функции require("psych")
в функции - это то, что я делаю сейчас, однако это не работает, если psych
не установлен, и, похоже, это неправильный способ сделать это (запись R-расширений говорит это предложение предназначено главным образом для примеров).
Мне кажется, мне нужно импортировать функцию. Я попытался установить Imports: psych
в DESCRIPTION и importFrom(psych,"principal")
в NAMESPACE. Это работает, но на компьютере, на котором не установлен психолог, возникает ошибка при загрузке моего пакета.
Ответы
Ответ 1
Основной вопрос, на который вы должны ответить: "Вы хотите, чтобы функция была доступна всем пользователям пакета без дополнительных усилий?". Если да, то используйте импорт + соответствующие объявления пространства имен, если нет, затем используйте предложения и распечатайте информативное сообщение об ошибке, если require("psych")
возвращает FALSE
.
Я не понимаю вашу жалобу, связанную с импортом: "но на компьютере, на котором не установлен психолог, появляется ошибка при загрузке моего пакета". Это также верно, если ваш пакет зависит от вас!