Написание виньетки пакета R, которая читается в файле примера?

Я пытаюсь написать виньетку для пакета в R. я следовал учебник из Университета Вандербильта а также официальные документы.

я .Rnw Sweave файл и поместить его в подкаталог inst/doc внутри моего пакета. Внутри того же подкаталога inst/doc, Я положил в папку example содержащих некоторые примеры текстовых файлов. Мой пакет имеет функцию myparser(path) что я хочу продемонстрировать в виньетке; myparser(path) создает несколько фреймов данных путем чтения в текстовых файлах внутри папки с абсолютным именем пути path.

затем я проверил пакет с помощью R CMD CHECK, и получил эту ошибку:

* checking running R code from vignettes ...
   ‘mypackage-vignette.Rnw’ using ‘UTF-8’ ... failed
 ERROR
Errors in running code in vignettes:
when running code in ‘mypackage-vignette.Rnw’
  ...
> library(mypackage)
Loading required package: ggplot2

> myparser("/example/")
Warning in file(file, "rt") :
  cannot open file '/example/': No such file or directory

  When sourcing ‘mypackage-vignette.R’:
Error: cannot open the connection
Execution halted

Я вижу, что моя попытка использовать относительный путь к папке не сработала (вероятно, должна была быть очевидной для меня), но я все еще не уверен, как исправить эту ситуацию. Я не хочу заменять path С абсолютным путем к папке на мой компьютер, потому что тогда код виньетки не будет воспроизводиться на компьютерах других людей.

как я могу включить файлы примеров в пакет, чтобы код виньетки был воспроизводимым? Правильно ли я вообще подхожу к этой проблеме?

(извините, этот вопрос сам по себе не более воспроизводим!)

1 ответов


можно использовать system.file('doc', 'example', package = 'mypackage') для ссылки на этот каталог, потому что R установит пакет перед созданием виньеток, как вы можете видеть при запуске R CMD build mypackage.