knitr,错误= TRUE与外部R脚本

时间:2014-08-22 13:08:06

标签: r knitr

我是knitr的新手,但我一直在做很多阅读,并在这里和其他地方四处寻找解决这个问题的方法。到目前为止,我还没有找到答案。我正在使用R版本3.1.1和R studio .98953。

我正试图在带有编织者的beamer幻灯片中向读者显示预期的错误消息。如果我将块包含在.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可解决问题。

1 个答案:

答案 0 :(得分:0)

正如the documentation警告过你:

  

[...]非常重要的是要注意,通常一个具有副作用的块应该被缓存。