如何使用尚未计算的抽象引用数据编写文章?

时间:2014-10-07 22:24:17

标签: r knitr r-markdown

更新:似乎我的问题实际上是this question的非常接近的重复 根据那个帖子,目前还没有" easy"解。但是,这个问题已经超过一年了,时间可能已经改变了(人们可以希望!)。

我原来的问题如下:


我认为我需要某种机制来重新排序文档中的文本和/或R块,因为它正在编织。我想要做的是写一篇文章"在我进入任何R代码之前,在开始时带有摘要和摘要的样式文档,但包含"转发" - 将在R代码中计算的事物的参考

所以我开始时的执行摘要可能是

We found a `r final_correlation/100`% correlation between x and y...
但是" final_correlation"当我完成可重复研究的所有步骤时,将在文件的后端计算。

事实上,当我阅读有关可重复研究的内容时,我经常看到评论文件通常可以更好地呈现在编程序列之外。

我相信在其他有文化的编程框架中,块可以纠缠成与它们呈现的顺序不同的顺序。我怎样才能在knitr中实现这一目标?或者是否有其他完全不同的工作流程或模式我可以采用以实现我想要的结果?

1 个答案:

答案 0 :(得分:1)

目前无法定义评估knitr中所有代码块的顺序。我能想到的一个想法是在文章的最后写出摘要,并将其包含在开头。大纲:

  • article.Rmd
  • abstract.Rmd

article.Rmd

Title.

Author.

Abstract.

```{r echo=FALSE, results='asis'}
if (file.exists('abstract.md')) {
  cat(readLines('abstract.md'), sep = '\n')
} else {
  cat('Abstract not ready yet.')
}
```

More code chunks.

```{r}
x <- 1:10
y <- rnorm(10)
final_correlation <- cor(x, y)
```

Body.

```{r include=FALSE}
knitr::knit('abstract.Rmd')  # generates abstract.md
```

abstract.Rmd

We found a `r final_correlation/100`% correlation between x and y...