Когда вы создаете пакет R, вы будете иметь дерево каталогов, содержащее следующие (среди прочих) в корневой директории пакета: DESCRIPTION
, NAMESPACE
и каталог R/
. Если у вас также есть каталог inst/
, то все в пределах этого каталога скопировано дословно в каталог вашего пакета, за исключением inst/
.
Например, если ваш каталог пакета выглядит следующим образом:
+- DESCRIPTION
+- NAMESPACE
+- inst/
| \- rmd/
| \- file.Rmd
\- R/
+- file1.R
+- file2.R
\- file3.R
Затем, когда вы собираете пакет и установить его, вы найдете в следующем в вашем пакете библиотеки:
+- DESCRIPTION
+- INDEX
+- NAMESPACE
+- rmd/
| \- file.Rmd
\- R/
+- packagename
+- packagename.rdb
\- packagename.rdx
(Другие файлы/каталоги созданы во время процесса, я игнорирую их для простоты.)
Последней информацией, которую вам нужно знать, является «как мне получить доступ к это файл после его установки? " Так как некоторые системы установить библиотеку R в различных каталогах, и на вершине, что пользователи часто устанавливают пакеты в пределах личной R библиотеки, вы не можете знать заранее, где искать Введите system.file
:
system.file("rmd/file.Rmd", package="packagename")
## [1] "c:/R/R-3.1.3/library/packagename/rmd/file.Rmd"
Это может будет использоваться для всего файла Rmd. Я использую его для шаблонов для конкретных компаний для документов Rmd. То есть, я ищу файлы «включить», чтобы персонализировать LaTeX, чтобы рендеринг PDF имел верхние/нижние колонтитулы и был разработан так, как мы хотим. Этот шаг требует записи функции, которая заменяет pdf_document
(например) в заголовке Rmd YAML, но это хорошо покрыто rmarkdown.rstudio.com.
Я закрыл это, поскольку это действительно как двойной из дюжины существующих вопросов относительно «как включить $ FOO» в мой пакет, и ответ всегда «ниже» inst/'. –
@DirkEddelbuettel Хотя это может быть очевидно для вас, поскольку у вас есть более структурные метазнания, ответ ниже был именно тем, что я искал, и связанная почта не ответила бы на мой вопрос. В частности, доступ к Rmd (отличный от простого вызова 'data (x)' был ключевым. –
@ DanielEgan, рад, что это помогло, но сайт действительно не улучшается, когда мы пишем те же самые вещи X раз под разными ярлыками. , ответ по существу «используется» system.file() '» - так что попробуйте, например, 'system.file (" doc "," knitr-intro.Rmd ", package =" knitr ")' который * независимо от того, где и то, как вы установили knitr *, предоставит вам полный путь к файлу - поскольку он исходит из 'inst/doc/knitr-intro.Rmd', а R может затем вычислить эти вещи. Это довольно хорошо документировано (если трудно найти сначала). –