r - YAML 中用于 rmarkdown 的内联 R 代码不运行

标签 r r-markdown

在获取 rmarkdown 之前,我试图在 YAML 前端运行内联 R 代码运行文件。但是它对我不起作用。下面是一个例子:

---
title: "**Title**"
classoption: xcolor=dvipsnames
output:
  beamer_presentation:
      slide_level: 2
      pandoc_args: [
        "--bibliography", "`r paste('path/to/bib')`"
        ]
---

<!-- slide 1 -->
## Intro ##

这会引发错误:
pandoc-citeproc: could not find `r paste('path/to/bib')`

这是一个简单的例子,但突出了我的主要问题。如何让 rmarkdown 在 YAML 前端运行内联 R 代码?

这是与这些问题类似的问题:
  • Manipulate RMarkdown metadata from within R code chunks
  • YAML current date in rmarkdown
  • 最佳答案

    这就是我解决这个问题的方法。我从 RStudio 编织。奇怪的是,我不得不对日期和 csl 字段使用一种解决方案,对引用书目字段使用不同的解决方案。 !expr 在 date 或 csl 行中不起作用(对我而言)。并且引用的 r 代码在引用书目行中不起作用(对我而言)。我在一个包(inst/docs 文件夹)中有引用书目和 csl 文件。 rmarkdown 文件(不属于该包的一部分)使用这些文件。

    ---
    title: "Title"
    date: '`r format(Sys.time(), "%d %B, %Y")`'
    output: html_document
    bibliography: !expr system.file("docs", "my.bib", package = "MyPackage")
    csl: '`r system.file("docs", "my.csl", package = "MyPackage")`'
    ---
    
    # Introduction
    
    Yada yada [@MyRef04].
    
    # References
    

    my.bib 是带有 MyRef04 的 BibTex 文件。 csl 是样式文件

    在这种情况下,一个人维护一个包,其中包含数据、代码、引用书目等。包编写者可能不知道的其他人从 GitHub 安装该包并编写或运行使用该包的 rmarkdown 文件。用户几乎肯定不使用 Git 或 GitHub,我不希望他们在从 GitHub 安装软件包后必须下载任何额外的文件。

    更新:发布上述内容后,我碰巧从 GitHub 安装了 Markdown,因为我需要开发版本中的一些东西。使用 GitHub 上 rmarkdown 的“1.7.5”版本,您可以在引用书目行中使用 r 代码:
    ---
    title: "Title"
    date: '`r format(Sys.time(), "%d %B, %Y")`'
    output: html_document
    bibliography: '`r system.file("docs", "my.bib", package = "MyPackage")`'
    csl: '`r system.file("docs", "my.csl", package = "MyPackage")`'
    ---
    

    从 GitHub 安装 rmarkdown
    library(devtools)
    install_github("rstudio/rmarkdown")
    

    关于r - YAML 中用于 rmarkdown 的内联 R 代码不运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32637340/

    相关文章:

    regex - 高效编码 - R 正则表达式为每个匹配复制行

    r - 可视化 SLA 性能

    r - 如何安装 Windows 版 Pandoc?

    r-markdown - 如何强制 RMarkdown 文档中的 Tikz 显示西里尔文字?

    r - 将一列数据框逐行合并为一个数据框

    r - 如何使用 Highcharter 创建两个独立的向下钻取图?

    根据前一列的值替换多列中的值

    r - 在 r bookdown 中更改章节颜色(pdf 输出)

    r - 可以 Rmarkdown 有一个不工作的代码,编织 html 输出显示错误和警告

    r - 制作没有 mustache 的箱线图