我正在使用knitr生成HTML文件。我正在使用for循环来绘制几个绘图,这些绘图是在这个循环中的HTML文件中编写的。在此for循环中,创建了更多数据。 是否有可能将这些数据放在我创建的图表之上?
我写了一个最小的例子来更好地解释我的问题:有没有办法将a
的输出放在页面顶部,在for-loop中创建的输出上方?
```{r}
a <- 10
for (x in 1:10) {
a <- a*x
cat(x, "\n")
}
cat(a)
```
答案 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")
}
```
第一个块完成所有计算但不显示任何内容。然后第二个块以您想要的任何顺序输出信息。这里需要注意的重要事项是,计算和存储在早期块中的任何内容都可以在以后的块中使用,因此您可以将其扩展到文档的多个部分。