Quando si crea un pacchetto R, si avrà una struttura di directory contenente le seguenti (tra gli altri) nella directory principale del pacchetto: DESCRIPTION
, NAMESPACE
, e la directory R/
. Se si dispone anche di una directory inst/
, tutto all'interno di tale directory viene copiato letteralmente nella directory del pacchetto, escluso lo inst/
.
Per esempio, se la directory di pacchetto si presenta così:
+- DESCRIPTION
+- NAMESPACE
+- inst/
| \- rmd/
| \- file.Rmd
\- R/
+- file1.R
+- file2.R
\- file3.R
Poi, quando si crea il pacchetto e installarlo, troverete nel seguente nella libreria del pacchetto:
+- DESCRIPTION
+- INDEX
+- NAMESPACE
+- rmd/
| \- file.Rmd
\- R/
+- packagename
+- packagename.rdb
\- packagename.rdx
(Altri file/directory vengono creati durante il processo, li sto ignorando per semplicità.)
L'ultima informazione che devi sapere è "come posso accedere a è un file una volta installato? " Dal momento che alcuni sistemi di installare il biblioteca R in directory differenti, e per di più gli utenti installano spesso pacchetti all'interno di un R biblioteca personale, non si può sapere a priori dove cercare Inserisci system.file
:
system.file("rmd/file.Rmd", package="packagename")
## [1] "c:/R/R-3.1.3/library/packagename/rmd/file.Rmd"
Questo può essere utilizzato per l'intero file Rmd. Lo uso per i modelli specifici dell'azienda per i documenti resi da Rmd. Cioè, cerco file "include" per personalizzare il LaTeX in modo che il PDF renderizzato abbia intestazioni/piè di pagina e sia in stile come vogliamo. Questo passaggio richiede la scrittura di una funzione che sostituisce lo pdf_document
(ad esempio) nell'intestazione Rmd YAML, ma che è coperta bene allo rmarkdown.rstudio.com.
Ho chiuso questo come una doppia dozzina di domande esistenti relative a "come includo $ FOO" nel mio pacchetto, e la risposta è sempre "sotto" inst/'". –
@DirkEddelbuettel Anche se potrebbe essere ovvio per te, dato che hai una meta-conoscenza strutturale più ampia, la risposta qui sotto era esattamente ciò che stavo cercando, e il post collegato non avrebbe risposto alla mia domanda. In particolare, l'accesso a un Rmd (diverso dal semplice chiamare 'data (x)' era la chiave –
@DanielEgan, è stato contento di averlo aiutato, ma il sito in realtà non migliora quando scriviamo le stesse cose X volte con etichette diverse. , la risposta è essenzialmente "use' system.file() '" - quindi prova ad esempio 'system.file (" doc "," knitr-intro.Rmd ", package =" knitr ")" che * non importa dove e come hai installato knitr * ti fornirà un percorso completo del file - come è venuto da 'inst/doc/knitr-intro.Rmd' e R può quindi calcolare queste cose.Questo è abbastanza ben documentato (se difficile da trovare all'inizio) –