Писает ли roxygen2 автоматически директивы NAMESPACE для пакетов "Imports:"? - PullRequest
45 голосов
/ 22 декабря 2011

tl; dr версия моего вопроса

Если я хочу импортировать пакеты, нужно ли вручную записывать директивы import() в мой файл NAMESPACE?Кажется, что roxygen2 волшебным образом не сделает этого для меня, даже если в моем описании они указаны как «Imports:».

Полная версия

Это довольно глупый вопрос, ноЯ спрашиваю, потому что ответ не очевиден для меня.

Я использую roxygen2 для обработки моей документации R пакета документации.Когда я хочу убедиться, что функция экспортирована, я добавляю тег @export к блоку roxygen.Последующие запуски roxygenize() напишут соответствующую директиву NAMESPACE.

Но мой пакет в настоящее время импортирует несколько других:

Depends:
    R (>= 2.13.0),
    ggplot2 (>= 0.8.9)
Imports:
    RColorBrewer,
    plyr,
    gridExtra

Похоже, что пока roxygen2 будет переписывать директиву NAMESPACE для экспортированных функций , она не будет автоматически перезаписывать NAMESPACE, чтобы отразить выбранные мной пакеты, которые должны быть импортированы в мое ОПИСАНИЕ.

1 Ответ

42 голосов
/ 25 декабря 2011

Расширяя мой комментарий, если вы хотите автоматически добавить namespace директивы для пакетов / функций, которые вы import, вы можете сделать это, добавив строку @imports package или @importFrom package function в заголовок документации roxygen2 твоя функция.

Однако, как указал @hadley, он только изменит NAMESPACE, но не повлияет на пакет DESCRIPTION

...