评论rmarkdown / knitr以防止R评估

时间:2017-05-04 13:39:43

标签: r knitr r-markdown

.Rmd用于在<!-- comment here -->文档中发表评论以使用HTML评论I haven't defined `x` yet. <!-- So when I say that `x` is `r x` in the text, I'd like to comment it out --> 是不够的。我想评论一下我的文档中包含内联评估的部分:

#   |.................................................................| 100%
#    inline R code fragments
# 
# 
# 
# 
# processing file: test.Rmd
# Quitting from lines 2-3 (test.Rmd)
# Error in eval(expr, envir, enclos) : object 'x' not found
# Calls: <Anonymous> ... in_dir -> inline_exec -> withVisible -> eval -> eval
# Execution halted

编织失败:

I haven't defined `x` yet.

So when I say that `x` is `r #x` in the text, I'd like to comment it out

一个选项是评论每个内联部分:

{{1}}

但是,如果我想用几个这样的内联计算来评论整个段落,那么这会受到影响。是否有更规范的方式来做到这一点?

2 个答案:

答案 0 :(得分:6)

正如@NicE所说,knitr首先评估您的代码,特别是因为可能存在内联R代码评估或其他R变量相关文本,然后需要将其评估为markdown语法。 例如,这包括在rmarkdown:

Define if bold `r bold <- TRUE`  
This text is `r ifelse(bold, "**bold**", "_italic_")`.

给出:

  

定义是否加粗   此文字为粗体

然后,我认为在不评估评论的情况下插入评论的唯一方法是将它们嵌入到eval=FALSE&amp;的块中。 echo=FALSE

```{r, eval=FALSE, echo=FALSE}
So when I say that `x` is `r x` in the text, I'd like to comment it out
```

答案 1 :(得分:0)

我发现yaml阻止了更好的评论,

---
title: "Untitled"
author: "baptiste"
date: "10/21/2017"
output: html_document
---

I haven't defined `x` yet.

---
# here's a comment
# ```{r}
# x = pi
# ```
---

不幸的是,它似乎不能使用内联r代码,这是先前解析过的。