Написание виньетки пакета 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
.