【发布时间】:2018-05-27 15:26:04
【问题描述】:
我创建了一个 rmarkdown 报告,其中包含一堆代码块。我现在正在为其创建一个摘要首页,并希望包含一个内联计算,如
Blah blah blah summary stuff.... We found the mean to be `r mean(some_object_from_the_report)`. Blah blah blah more summary stuff.
作为 RMD 文件的开头,some_object_from_the_report 尚不存在。有没有办法告诉 knitr 推迟评估该代码 sn-p 直到后面的项目都被计算完?
感谢您的任何提示!
编辑:
建议在 knitr 选项中设置 echo=false。要么我做错了,要么对我的情况没有帮助。以下简短示例说明了这一点。
---
title: "Minimal test of delayed evaluation"
author: "sff"
date: "December 13, 2017"
output: html_document
---
```{r setup, include=TRUE}
knitr::opts_chunk$set(echo = FALSE)
```
## Summary
Summary of blahblahblah. Also here's a mean from the report: `r mean(testobj)`.
## Report
```{r report_stuff}
testobj <- c(1, 2, 3)
```
Knitr 抛出未找到对象错误。我是否错误地执行了该建议,或者该建议没有达到我想要的效果?
【问题讨论】:
-
感谢 Mako 的提示。下面的示例引发错误。一点帮助? --- 标题:“延迟评估的最小测试”作者:“sff”日期:“2017 年 12 月 13 日”输出:html_document ---
{r setup, include=TRUE} knitr::opts_chunk$set(echo = FALSE)## 总结 blahblahblah 的总结。这里还有一个来自报告的平均值:r mean(testobj)。 ## 报告{r report_stuff} testobj <- c(1, 2, 3)我错过了什么? -
我通常做的是创建一个包含要计算的字段的空列表,它们稍后在脚本期间填充并保存为 Rdata。下次我加载此列表时的第一件事。这需要运行脚本两次,但我在文章开头使用它来进行摘要。
-
@Cedric 所以这个想法是它第一次运行时输出中没有填充任何内容,但是计算被保存,所以它第二次运行时加载计算然后显示在输出中?
-
是的,我会在下面举一个例子
标签: r knitr r-markdown