У меня есть файл .R
, в котором я для каждого уникального значения в списке отображаю несколько разных файлов .Rmd
. Что-то вроде этого:
for (uddannelse in unique(c("Monkey","Horse"))) {
rmarkdown::render("file1.Rmd", output_dir=file.path(getwd(), uddannelse) ,output_file=paste("file1", uddannelse,".html", sep="_"), encoding="UTF-8")
rmarkdown::render("file2.Rmd", output_dir=file.path(getwd(), uddannelse), output_file=paste("file2", uddannelse,".html", sep="_"), encoding="UTF-8")
}
Как видно из параметров рендера, html-вывод должен идти в отдельную папку для каждого значения в списке, в приведенном выше примере: папка: Monkey и папка Horse.
Каждый файл .Rmd
имеет следующую вводную часть (файлы переходят на статический веб-сайт html и должны иметь self_contained: false
:
---
output:
html_document:
theme: readable
self_contained: false
lib_dir: pub/libs
css: pub/libs/custom_css/custom.css
date: "`r format(Sys.time(), '%d %B, %Y')`"
---
Однако: когда я вызываю функции рендеринга, я получаю эту ошибку:
Ошибка в relativeTo(базовый путь, каталог):
Путь C:/Users/ac/Dropbox/2014_07_WIP/pub/libs/jquery-1.11.0 не является потомком C:/Users/ac/Dropbox/2014_07_WIP/Monkey/
Поэтому я предполагаю, что rmarkdwown::render
сначала создает каталоги lib относительно файла Rmd, но ожидаю, что файлы будут размещены относительно выходных файлов.
Как я могу обойти это, чтобы иметь набор общих входных файлов Rmd в одной папке и иметь выходные данные в разных папках, но при этом использовать общую библиотеку?
Я попытался разместить что-то подобное во фронтматерии.
---
output:
html_document:
theme: readable
self_contained: false
lib_dir: "`r file.path(uddannelse, "libs")`"
css: "`r file.path(uddannelse, "libs", "custom_css", "custom.css")`"
date: "`r format(Sys.time(), '%d %B, %Y')`"
---
И я получил эту ошибку:
Error in yaml::yaml.load(front_matter) :
Parser error: while parsing a block mapping at line 3, column 5did not find expected key at line 5, column 50