Подтвердить что ты не робот

Как правильно использовать функции из других пакетов в пакете R

Я немного смущен этим. У меня есть пакет R, который имеет небольшую функцию (а не часть мэра пакета), в которой вызывается функция principal пакета psych. Как правильно указать это в DESCRIPTION и NAMESPACE?

Настройка Depends: psych в DESCRIPTION гарантирует, что пакет psych загружается каждый раз, когда загружается мой пакет. Это работает, но это кажется излишним для такой небольшой части моего пакета.

Настройка Suggests: psych и ввод функции require("psych") в функции - это то, что я делаю сейчас, однако это не работает, если psych не установлен, и, похоже, это неправильный способ сделать это (запись R-расширений говорит это предложение предназначено главным образом для примеров).

Мне кажется, мне нужно импортировать функцию. Я попытался установить Imports: psych в DESCRIPTION и importFrom(psych,"principal") в NAMESPACE. Это работает, но на компьютере, на котором не установлен психолог, возникает ошибка при загрузке моего пакета.

4b9b3361

Ответ 1

Основной вопрос, на который вы должны ответить: "Вы хотите, чтобы функция была доступна всем пользователям пакета без дополнительных усилий?". Если да, то используйте импорт + соответствующие объявления пространства имен, если нет, затем используйте предложения и распечатайте информативное сообщение об ошибке, если require("psych") возвращает FALSE.

Я не понимаю вашу жалобу, связанную с импортом: "но на компьютере, на котором не установлен психолог, появляется ошибка при загрузке моего пакета". Это также верно, если ваш пакет зависит от вас!