【发布时间】:2014-08-22 13:08:05
【问题描述】:
我是 knitr 的新手,但我一直在阅读大量关于它的内容,并在此处和其他地方寻找解决此问题的方法。到目前为止,我还没有找到答案。我正在使用 R 版本 3.1.1 和 R studio .98953。
我正在尝试在带有 knitr 的投影仪幻灯片中向读者展示预期的错误消息。如果我将块包含在 .Rnw 文件中,我可以通过在块选项中设置 ERROR = TRUE 来获得结果。但是,当 .Rnw 引用外部 R 脚本时,我无法让它工作。我只是在控制台中收到一条错误消息,它拒绝打印。让它打印的唯一方法是注释掉脚本中的违规代码,但是我没有收到错误消息。有什么建议吗?
编辑:这是 .R 脚本。
---- demo ----
TRUE <- 7 # Unlike T, TRUE cannot be overridden
这是 .Rnw 中的全局块
<<r setup, echo=FALSE>>=
library(knitr)
opts_knit$set(root.dir=normalizePath('../'))
@
<<chunk options, echo=FALSE, cache=FALSE>>=
options(replace.assign = TRUE, width = 50)
knit_hooks$set(par = function(before, options, envir) {
if (before)
par(mar = c(4, 4, 0.1, 0.1), cex.lab = .95, cex.axis = 0.9, mgp = c(2, 0.7, 0), tcl = -0.3)
})
read_chunk("scripts/r-syntax.R")
opts_chunk$set(fig.path = "../figure/rsyntax", cache.path = "../cache/rsyntax", dev = "tikz" , cache = TRUE, fig.align = "center", par= TRUE)
@
(我已经从另一个示例修改了此代码,这可能是一个错误,因为我仍在弄清楚它的全部含义)。
opts_chunk$set 部分显然有问题。如果我将其注释掉,它可以正常工作。
(顺便说一句,我没有遇到其他块的问题)。
编辑 2:
问题在于cache = TRUE 选项。将其更改为 cache = FALSE 即可解决问题。
【问题讨论】:
-
请提供可重现的示例。
-
谢谢。对不起,我是新来的,我应该早点提供一个例子。我拥有的其他一些块选项一定有问题。当我注释掉除 read_chunk 函数之外的所有内容时,它运行良好。我在上面添加了原始块,稍后我将自行调查,但我没有时间了。等我弄清楚问题出在哪里,我会补充的。
-
正如我在上面所写的,问题在于 cache = TRUE 选项。将其更改为 cache = FALSE 允许它打印。