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