knitr:将输出放在页面顶部

knitr: put output on top of the page

我正在用 knitr 生成一个 HTML 文件。我正在为几个图使用 for 循环,这些图写在这个循环内的 HTML 文件中。在此 for 循环中,将创建更多数据。 是否有可能将这些数据放在我创建的图之上?

我写了一个最小的例子来更好地解释我的问题:有没有办法将 a 的输出放在页面顶部,在 for 循环中创建的输出之上?

```{r}
a <- 10
for (x in 1:10) {
 a <- a*x
 cat(x, "\n")
}
cat(a)

```

我的建议是使用两个单独的代码块来实现您想要的结果。第一个块将执行所有计算和图表生成并将信息存储在变量中。然后在第二个块中按所需顺序简单地输出变量的内容(包括数据和图表)。

使用上面的示例,您将拥有:

```{r}
a <- 10
result <- numeric(10)
for (x in 1:10) {
 a <- a*x
 result[x] <- x
}
```

```{r, echo = FALSE}
cat(a)
for (x in 1:10) {
     cat(result[x], "\n")
}
```

第一个块执行所有计算但不显示任何内容。第二个块然后以您想要的任何顺序输出信息。此处需要注意的重要一点是,无论在较早的块中计算和存储什么,都可以在后面的块中使用,因此您可以将其扩展到文档的多个部分。