Функции, не загруженные из встроенного пакета

Я участвую в создании собственных пакетов с помощью RStudio. Текущий .tar.gz для пакета (с именем SteenSubsSpec) здесь. В настоящее время команда Build & Reload появляется для сборки и Roxygen-ize пакет успешно. Однако функции не загружаются в память, несмотря на то, что Build & Reload успешно обновляет документацию. Что я делаю неправильно?

Build & Reload введите следующий результат:

==> roxygenize('.', roclets=c('rd'))
  • проверка изменений... DONE

== > R CMD build SteenSubsSpec

* checking for file ‘SteenSubsSpec/DESCRIPTION’ ... OK
* preparing ‘SteenSubsSpec’:
* checking DESCRIPTION meta-information ... OK
* excluding invalid files
Subdirectory 'R' contains invalid file names:
  ‘2013_08_30_report-concordance.tex’ ‘2013_08_30_report.Rnw’
  ‘2013_08_30_report.log’ ‘2013_08_30_report.pdf’
  ‘2013_08_30_report.synctex.gz’ ‘2013_08_30_report.tex’
* checking for LF line-endings in source and make files
* checking for empty or unneeded directories
Removed empty directory ‘SteenSubsSpec/inst’
* building ‘SteenSubsSpec_1.0.tar.gz’

Source package written to ~/Dropbox/[my directory]

Это обновляет документацию: ?write_paper() отображает текущую документацию, как ожидалось. Однако

require(SteenSubsSpec) 
write_paper() 

дает Error: could not find function "write_paper"

Некоторые вещи, которые кажутся правильными:

  • Все функциональные файлы находятся в каталоге R и имеют то же имя, что и их определение (например, /R/write_paper.R определяет write_paper() <- function {...
  • Файл DESCRIPTION содержит имена всех соответствующих файлов функций: Collate: ... 'write_paper.R

Как я могу устранить эту проблему?

Ответ 1

Скорее всего, эти функции не экспортируются в файл NAMESPACE (который в настоящее время пуст).

В RStudio в разделе "Инструменты сборки" в "опциях проекта" убедитесь, что "Создать документацию с помощью roxygen" отмечен. Затем нажмите "configure". Убедитесь, что "Использовать roxygen для создания файла NAMESPACE" также проверяется.

В ваших файлах функций R добавьте @export yourfunctionname там (или, технически, #' @export yourfunctionname), а когда вы создаете и перезагружаете, ваш файл NAMESPACE должен быть обновлен, а ваши функции больше не будут невидимыми.