【问题标题】:knitr does not inject the R output into a pandoc/markdown documemtknitr 不会将 R 输出注入 pandoc/markdown 文档
【发布时间】:2013-11-15 00:11:56
【问题描述】:

我正在尝试使用knitr 将R 代码及其输出注入pandoc/markdown 文档中。但我没有让 knitr 注入 R 输出。我尝试用r and with{r} 装饰 R 块。两者都不起作用。这是我的示例设置(使用```r):

首先显示我发出的命令,然后列出该命令随后使用的两个文件。

这里是shell的命令:

$ r CMD BATCH knitme.R

knitme.R的内容:

library("knitr")
pandoc("foo.md")

foo.md的内容:

# My knitr test

```r
1+1
```

Did this print *the result* as well?

Here a graph:

```r

plot(1:10)
```

And where is the graph?

运行命令后,我确实得到了一个新文件foo.html。这里是它的内容:

<h1 id="my-knitr-test">My knitr test</h1>
<pre class="sourceCode r"><code class="sourceCode r"><span class="dv">1+1</span></code></pre>
<p>Did this print <em>the result</em> as well?</p>
<p>Here a graph:</p>
<pre class="sourceCode r"><code class="sourceCode r">
<span class="kw">plot</span>(<span class="dv">1</span>:<span class="dv">10</span>)</code></pre>
<p>And where is the graph?</p>

这个结果表明pandoc转换了输​​入文件foo.md,*但是knitr没有注入执行R代码的输出。

我错过了什么?任何帮助表示赞赏!

【问题讨论】:

  • 您的文档中没有任何 knitr 代码块。 R markdown 中的 knitr 代码块应以 ```{r} 开头
  • 好的,我也尝试过使用```{r},但是我在html输出中得到了“{r}”,而且仍然没有从knitr注入R输出。 - 我真的不明白:Yihui describes exactly my approach(注意:网站很不稳定)。

标签: r knitr pandoc r-markdown


【解决方案1】:

您应该首先在 R Markdown (*.Rmd) 文档上调用 knit(),这会生成一个 Markdown (*.md) 文档,此时您可以运行 pandoc()

library(knitr)
knit('foo.Rmd')
pandoc('foo.md')

flaky 网站上提到的示例 084088 中的 R 脚本已经说明了如何。另请查看 Rmd 文档以了解 R Markdown 中 R 代码块的语法。如果你还有 5 分钟的时间,看看首页的视频,我想所有的困惑都应该消失了。

【讨论】:

  • 谢谢!很快就会试用。
  • 关于“片状网站”的说明:yihui.name 的 DNS 解析对我来说无法正常工作,但它确实在 1-2 天前工作。我在澳大利亚;我尝试了不同的 DNS 服务器,但仍然没有运气。使用我从 whois 获得的 IP 地址 207.97.227.245,也不会引导我访问内容(只给出 github 的 404)。 - 不知道为什么我有这些 DNS 问题。因此,该注释只是为了警告可能遇到相同问题的其他人,不是作为对网站的批评 - 如果我给人留下了这样的印象,对不起。
  • 是的。像宣传的那样工作。谢谢。
  • @halloleo 没问题!我不介意你指的是 DNS 还是网站的内容,但如果是后者,Github 拉取请求是 always welcome! :)
猜你喜欢
  • 2017-09-30
  • 2017-03-26
  • 2021-10-11
  • 2013-06-14
  • 1970-01-01
  • 2020-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多