Как правильно использовать функции из других пакетов в пакете R - PullRequest
22 голосов
/ 10 марта 2011

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

Установка Depends: psych в ОПИСАНИЕ гарантирует, что пакет psy загружается каждый раз, когда загружается мой пакет. Это работает, но это кажется излишним для такой маленькой части моего пакета.

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

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

1 Ответ

20 голосов
/ 10 марта 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...