【发布时间】:2014-05-03 01:33:23
【问题描述】:
我正在编写 knitr-sweave 文档,发现全局 R 选项像
par(lwd=3)
和
strOptions(strict.width='cut')
在以后的代码块中不生效。我可以在每次 plot() 或 str() 时将这些选项指定为参数,所以这不是一个大问题。我只是想知道是否有人对此有任何见解。我应该在设置这些选项的地方缓存代码块吗?我在早期代码块中调用一些库并在其他代码块中设置变量,它们似乎都可以“全局”访问(即在以后的代码块中)。
【问题讨论】:
-
par应该只影响当前的图形设备。我有点惊讶strOptions没有持久效果。 -
我知道 par 是针对当前设备的,但是为什么像
op <- par(pch = '$', col = green)这样的东西不能通过再次调用op在后续块中工作? -
@rawr 我感觉和@BondedDust 一样。对于
par(),这是因为 knitr 为每个代码块打开了一个新设备。也许我应该在整个会话过程中记录par()以使设置保持不变。就我个人而言,我经常使用块挂钩来设置 par(),例如github.com/yihui/knitr/blob/…