我创建了一个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在后面的项都计算完之后再计算这个代码片段?
谢谢你的任何提示!
编辑:
建议在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
testobj <- c(1, 2, 3)
型
Knitr抛出一个对象未找到错误。我是错误地执行了这个建议,还是这个建议没有达到我想要的效果?
2条答案
按热度按时间mrfwxfqh1#
这里是一个简单的工作示例,您在摘要之前设置第一个块,如果您需要调整其他thigs(如
\graphicspath{}
),则可以在文档的开头设置。如果包含列表的Rdata文件不存在,则在此块中创建一个列表。您需要用文本中调用的值填充它。
当第一次运行这个例子时,您会得到
第二轮你就可以
的
请注意,这种方式可以避免运行长时间的计算,并简单地保存其结果。
字符串
woobm2wo2#
下面是另一种选择:
1.在你的摘要之前创建一个块(或几个)。
1.使用块导入和清理数据。
1.然后计算出现在抽象中的每个值,并将每个值保存到一个命名对象中。
1.现在只需要抽象地引用内联代码中的命名对象(而不是自己进行计算)。
优点:
下面是一个例子:
Abstract
This is an abstract. There were
r n_cases
recruited to the study.