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