knitr:将输出放在页面顶部

时间:2015-01-09 21:11:15

标签: r knitr

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

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

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

```

1 个答案:

答案 0 :(得分:4)

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

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

```{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")
}
```

第一个块完成所有计算但不显示任何内容。然后第二个块以您想要的任何顺序输出信息。这里需要注意的重要事项是,计算和存储在早期块中的任何内容都可以在以后的块中使用,因此您可以将其扩展到文档的多个部分。