假设我们有一个.Rmd
(或.Rnw
)文档和一个R
模块,它们通过read_chunk()
连接。在R
模块中,我们希望能够检查knitr
的运行时状态,换句话说,验证是否执行模块的代码块发生在knitr
的控件下,或者它是一个简单的R
会话。怎么做到这一点?我考虑在第一个代码块中初始化全局标志,其中knitr
被加载,但我不确定,它是否是最佳解决方案,甚至是否可行。
更新
我刚刚验证了我的全局变量方法,无法正常工作。不确定我是否做错了,或者我不理解knitr
的加载和初始化的机制。我已完成以下操作:只需在FALSE
模块的开头将标志初始化为R
,然后将标志重置为TRUE
文档中第一个块中的.Rmd
,加载knitr
的地方。然后我将print()
语句放在R
模块中的某个位置,并将其作为R
会话并通过处理.Rmd
文档运行。无论如何,它会打印FALSE
。