Как я могу изменить инструкции yaml вне документа, который я отображаю? - PullRequest
3 голосов
/ 12 января 2020

Я бы хотел rmarkdown::render R документ без указания параметров yaml в самом документе .

В идеале это может быть аргумент rmarkdown::render или knitr::spin, например, то, что вы можете сделать для передачи params (см. Справочник Rmarkdown ). Как правило, я бы хотел author, date и опции output.

Я думаю, что это возможно, потому что, следуя следующему документу без указания чего-либо, я получаю следующий вывод (поэтому должен быть шаблон аргументов по умолчанию, который я могу изменить)


enter image description here


В качестве примера, как я мог сделать с render документом, который дал бы мне такой же вывод, как, например, ниже (, но, конечно, без указания yaml в документе ie no yaml вообще в документе )

---
title: "Sample Document"
output:
  html_document:
    toc: true
    theme: united
  pdf_document:
    toc: true
    highlight: zenburn
---

#' # Title
Hello world

#+ one_plus_one
1 + 1

Ответы [ 2 ]

3 голосов
/ 12 января 2020

Вы также можете передать параметры yaml в качестве параметров. Например:

---
params: 
  title: "add title"
  author: "add author"
output: pdf_document
title: "`r params$title`"
author: "`r params$author`"
---

This is my document text.

Затем в отдельном скрипте R:

rmarkdown::render("my_doc.rmd", 
                  params=list(title="My title", 
                              author="eipi10"))
1 голос
/ 12 января 2020

Вы можете cat a sink в tempfile.

xxx <- "
#' # Title
Hello world

#+ one_plus_one
1 + 1
"

tmp <- tempfile()
sink(tmp)
cat("
---
title: 'Sample Document'
output:
  html_document:
    toc: true
    theme: united
  pdf_document:
    toc: true
    highlight: zenburn
---", xxx)
sink()
w.d <- getwd()
rmarkdown::render(tmp, output_file=paste(w.d, "myfile", sep="/"))
...