rmarkdown / bookdown: редактировать `метаданные $ abstract` на лету? - PullRequest
0 голосов
/ 29 мая 2018

Это частично было задано (без каких-либо ответов) здесь , и я обратился через комментарий здесь - извинения за многосторонний подход ...

В моем текущем квесте (см. здесь для примера и других аспектов) к автоматической сборке отчетов с использованием bookdown, я хотел бы сделать следующее:

  1. Начать абзац в заголовке yaml примерно так:

    ---
    title: "Test Doc"
    author: "Balin"
    date: "May 29, 2018"
    abstract: "Bare bones abstract."
    output: 
      bookdown::pdf_document2:
        toc: no
    ---
    
    This stands in for an extensive report where `code`, its 
    documentation and interpretation of its results are integrated:
    
    1. We load some data:
       ```{r data-loading}
        my_data <- cars
        # PLACEHOLDER (see in text below) #
       ```
    <!-- ... -->
    
  2. В процессе обработки я стремлюсь редактировать yaml - получение абстрактного, кумулятивно собирающего / дополняющего его.Я знаю о rmarkdown::metadata$abstract (см., Например, здесь ), но объект metadata кажется неизменным и не может быть отредактирован.

    Я по сути хочу заменить бит PLACEHOLDERв примере с чем-то вроде:

    rmarkdown::metadata$abstract <- paste(
      rmarkdown::metadata$abstract,
      "The analyzed dataset contains",
      nrow(my_data),
      "data points.")
    

    Это может быть достигнуто?

1 Ответ

0 голосов
/ 01 июня 2018

Помните, что YAML не обязательно должен быть целиком в одном блоке или полностью в начале вашего документа Rmarkdown.

В моих отчетах Rmarkdown я помещаю тезис в отдельный блок YAML после анализа.В этот момент вы можете ссылаться на объекты R в виде встроенных выражений, как и в других Rmarkdown.Аннотация будет по-прежнему помещаться в начало выходного документа.

```{r last_chunk}
# run R code
````

---
abstract: |
On `r Sys.Date()` we analyzed `r nrow(mydata)` observations and found...
----

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

Предостережение - я использую это в Rmarkdown, но не проверял это с bookdown.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...