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

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

я сделал .Rnw Загрузите файл и поместите его в подкаталог 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,

Другие вопросы по тегам