Ben*_*ker 18 r knitr r-markdown
基于一些简单的测试,interactive()在内部rmarkdown::render()或中运行代码时都是如此knitr::knit2html().也就是说,一个简单的.rmd文件包含
```{r}
print(interactive())
```
Run Code Online (Sandbox Code Playgroud)
提供报告的HTML文件TRUE.
有没有人知道我可以在一个代码块中运行的测试,它将确定它是否是"非交互式"运行,我的意思是"在knit2html()或render()"中?
CL.*_*CL. 25
正如Yihui在github上建议的那样, isTRUE(getOption('knitr.in.progress'))可以用来检测代码是编织还是交互执行.
滚动你自己的一个简单建议:看看你是否可以访问当前的输出格式:
```{r, echo = FALSE}
is_inside_knitr = function() {
!is.null(knitr::opts_knit$get("out.format"))
}
```
```{r}
is_inside_knitr()
```
Run Code Online (Sandbox Code Playgroud)
当然,您可以检查很多事情——这不是这些功能的预期用途,因此它可能不是最强大的解决方案。