【发布时间】:2012-05-22 21:22:03
【问题描述】:
我正在使用 cachesweave,但我不认为我了解一切是如何工作的。我试图将代码分成模拟块和绘图块,但有些代码很长,而且是在我开始 sweave 文档之前编写的,所以我改用类似
<<foo,cache=TRUE>>
source("mainScript.R")
@
<<plot,fig=TRUE>>
a<- print(str(F1))
plot(F1)
@
问题是 mainScript.R 是有点复杂的模拟代码,包括绘图函数等。我在 cacheSweave 小插图中读到“cacheSweave 不缓存副作用”并且绘图没有被缓存,所以我想知道 mainScript.R 中的绘图函数是否影响表达式的评估方式?
这可能是一个显而易见的问题。假设我在上述两个之后还有另一个块。 “foo”和“plot”中表达式的所有结果都可以在这个新块中使用,对吧?例如,
<<post-chunk>>
print(a)
print(str(F1))
@
【问题讨论】:
-
顺便说一句 - 你可能想看看 knitr。它基本上是一个更好的 Sweave 版本,它自动内置缓存并缓存绘图。