如何使用R markdown将未注释文本块转换为呈现/显示为注释文本的文本

时间:2016-02-20 17:42:48

标签: r knitr r-markdown

我正在使用knitr,并且我希望在R markdown中呈现文本块,就好像它们是注释输出一样。如何让knitr在文本中添加左对齐的注释符号?

即,我有很多类似下面的文本,我在我的.Rmd文件中从R studio的R命令控制台复制粘贴:

Fixed effects:
                          Estimate Std. Error t value
(Intercept)                723.793     27.472  26.346
GroupCond.Treatmenthomo      6.145      4.792   1.282
GroupCond.Treatmenthetero   20.739      4.796   4.324

我希望knitr以注释代码块的方式呈现它:

##  Fixed effects:
##                            Estimate Std. Error t value
##  (Intercept)                723.793     27.472  26.346
##  GroupCond.Treatmenthomo      6.145      4.792   1.282
##  GroupCond.Treatmenthetero   20.739      4.796   4.324

有办法做到这一点吗?

我在这里尝试做的是显示建模过程中的步骤,而不实际为我的.Rmd文件加载命令执行步骤,这需要将数据加载到.Rmd环境和耗时的模型中配件。并且,在显示步骤时,我想明确区分建模命令和模型输出。

2 个答案:

答案 0 :(得分:0)

尝试转义您的降价文字。请记住以两个空格结束每一行以强制换行

\##  Fixed effects:  
\##                            Estimate Std. Error t value  
\##  (Intercept)                723.793     27.472  26.346  
\##  GroupCond.Treatmenthomo      6.145      4.792   1.282  
\##  GroupCond.Treatmenthetero   20.739      4.796   4.324  

答案 1 :(得分:0)

总结一下,问题在于实际上并不是计算结果,而是在文档中计算看起来像的输出(代码和结果)。

假设我们有以下代码生成data.frame

dat <- data.frame(ID = 1:10, char = LETTERS[1:10])

假设我们不想让读者混淆#34;令人困惑的代码&#34;生成dat。但是我们希望显示有一个命令summary(dat),我们想要包含它的输出。输出应该看起来像我们实际执行的命令。

我提出三种不同的解决方案。我将它留给读者来演示片段以便查看输出。

执行所有操作,隐藏令人困惑的内容

简单版本:

```{r, echo = FALSE}
dat <- data.frame(ID = 1:10, char = LETTERS[1:10])
```

```{r}
summary(dat)
```

高级版(相同输出!):

```{r, echo = 2}
dat <- data.frame(ID = 1:10, char = LETTERS[1:10])
summary(dat)
```

说明:请参阅echo的文档。

  • Pro:可重现。
  • Con:如果加载/生成数据是计算密集型的(如问题所示),则执行时间。请注意,编织的cache可能是重复执行的出路。

加载数据

在正常的R会话中,生成/计算要打印的对象,并使用save将它们保存到文件中。在文档中,load该文件(在单独的块中或使用上面的echo技巧)。

```{r, echo = 2}
load("dat.RData")
summary(dat)
```
  • 专业版dat的生成对文档无关紧要。
  • Con:需要提前创建文件;伤害再现性。

假装执行

问题建议显示从控制台复制的文本,就好像它是输出一样。

```{r, eval = FALSE}
summary(dat)
```

```{r, echo = FALSE}
cat("       ID             char  
 Min.   : 1.00   A      :1  
 1st Qu.: 3.25   B      :1  
 Median : 5.50   C      :1  
 Mean   : 5.50   D      :1  
 3rd Qu.: 7.75   E      :1  
 Max.   :10.00   F      :1  
                 (Other):4  ")
```
  • 专业版:文档中不需要执行任何内容(cat除外)(如果您想称之为优势)。
  • Con:不可重复。代码更改时容易忘记更新输出。