2014-11-18 2 views
1

Я пишу пакет, и единственной целью этого пакета является создание отчетов. Я использую knit для создания отчетов из файла .Rnw. Все это происходит внутри функции в пакете. напримерВключая файлы Rnw в пакете

create_report <- function(data) { 
    knit2pdf(from = "myreport.Rnw", to = "myreport.tex") 
    # The Rnw in the knit2pdf function uses the data passed to this function 
} 

Мой вопрос прост. Где в папках папок я храню файл .Rnw? В настоящее время мой пакет имеет следующие папки:

  1. .Rproj.user
  2. данные
  3. люди
  4. R

Я просто не знаю, где мои скрипты RNW должны идти? Нужна ли мне, например, другая папка LaTeX? Это похоже на наличие отдельной папки для сценариев на C++.

Примечание. Я не ищу, чтобы создать виньетку. Я знаю, как это сделать. Этот пакет используется для обработки данных, а затем генерирует отчет по данным.

Я попытался выложить все как можно яснее, поскольку некоторые вопросы, которые я задал здесь, были неверно истолкованы. Пожалуйста, спросите, что-то неясно.

+2

WRE описывает, как вложенные папки в inst/будут скопированы на верхний уровень при установке вашего пакета. Поэтому вы можете разместить свои шаблоны (так я интерпретирую ваш вопрос) в inst/latex, и пользователь пакета может получить к ним доступ с помощью 'system.file'. – baptiste

+0

Хорошо, я все еще узнаю о развитии пакета, поскольку я иду, поэтому я проверю .Rproj.user. Кто такой WRE? Сожалею. Я постараюсь разместить их в inst/latex. Я попытался поместить их в inst, но system.file не может найти их после сборки пакета ... они действительно шаблоны. – nathaneastwood

+0

Написание R расширений. Вы действительно должны прочитать его, если вы пишете пакет. – baptiste

ответ

2

Чтобы ответить на этот вопрос: Включать файлы .Rnw в ./pkgname/inst/latex тогда, когда вы собираете пакет, папка ./latex будет идти на уровень корневого каталога пакета. Затем вы можете извлечь файлы .Rnw, используя system.file("latex", "mytemplate.Rnw", package = "pkgname").

Смежные вопросы