2016-09-11 2 views
1

При написании пакета в R необходимо добавить базовые пакеты (utils, grDevices, stats и т. Д.) В качестве зависимостей в DESCRIPTION вашего пакета?Зависимости пакетов для базовых пакетов R

Some packages сделать это, но большинство похоже нет.

Я не нашел никакой информации в Writing R Extensions manual относительно этого.

+0

Да, вы должны импортировать их в ОПИСАНИЕ и НАЗНАЧЕНИЕ, при необходимости. Старые пакеты, возможно, не соответствовали этой политике, поскольку она была реализована только на CRAN в прошлом году. – Thomas

+0

@ Проверка Томаса R CMD не волновала это, когда я ее запустил. Также, пожалуйста, покажите мне, где эта проблема рассматривается в политике CRAN, потому что я не мог ее найти. (Обратите внимание, что мой вопрос применяется выборочно к базовым пакетам в R.) В качестве побочной заметки я не вижу, как ваш предлагаемый дубликат справляется с этой проблемой, поскольку CRAN не дает мне никаких примечаний, предупреждений или ошибок при запуске R CMD. –

+1

Запуск 'R CMD check --as-cran'. Это не супер явно, но [где WRE говорит, что «все пакеты» должны передать это] (https://cran.r-project.org/doc/manuals/r-devel/R-exts.html#DOCF10), они также означают пакеты по умолчанию, отличные от базы. – Thomas

ответ

1

Вы не должны устанавливать слишком много зависимостей, но предпочитают использовать эти пакеты как импорт:

, например, в описании вы будете писать

 Imports:  
    graphics, 
    utils, 
    stats, 
    grDevices 

В пространстве имен, то вы можете использовать либо importFrom, в в случае, если у вас есть только несколько функций для использования. Тогда вам не нужно указывать на функцию, используя pkg :: fun() или import pkg, который импортирует весь пакет, и вам больше не понадобится использовать pkg :: fun().

Ниже приведен пример того, что вы можете написать в вашем NAMESPACE

import(graphics) 
    importFrom(stats,coef) 
    importFrom(stats,ftable) 
    importFrom(stats,na.fail) 
    importFrom(utils,data) 
    importFrom(utils,globalVariables) 
    importFrom(utils,read.csv) 
    importFrom(utils,select.list) 
    importFrom(utils,stack) 
    importFrom(utils,write.table) 

Если вы попытаетесь использовать эти функции, не импортируя их или использование зависит, проверка R-CMD потерпит неудачу.

+0

Я получил доступ ко всем моим функциям с помощью '::' в пакете, но не добавил импорт в NAMESPACE. Однако проверка R CMD не вызывала у меня никаких ошибок в отношении не добавления grDevices (например), как это обычно бывает для пакетов, которые не являются частью базы R. –

+0

Я думаю, что предыдущие комментарии от @thomas дают вам правильный ответ , У меня были эти предупреждения, чтобы справиться с R-forge, и до того, как я просто использовал, зависит, тогда у меня появилось предупреждение о том, что у меня слишком много пакетов. Попробуйте R CMD CHECK - as-cran, как сказал Томас. – Cedric

+0

Как я уже упоминал выше @Cedric Я не получаю никаких предупреждений, и проверка R CMD была запущена на серверах CRAN. –

Смежные вопросы