在 rmarkdown::render 期间检查是否 运行

Check if running during a rmarkdown::render

如果我在 RMarkdown 文件中手动 运行 代码,我希望有一个在 RStudio 中查看 table 的函数,否则使用 knitr::kable()

ez_view <- function(df){
  if(`IS_RENDERING`){
    knitr::kable(df)
  } else {
    View(df)
  }
}

有没有办法轻松做到这一点?

您可以使用 knitr::opts_knit$get('rmarkdown.pandoc.to') 查找有关 rmarkdown 正在做什么的信息。如果您不渲染,那将给出 NULL。所以这个测试应该做你想做的:

if (!is.null(knitr::opts_knit$get('rmarkdown.pandoc.to'))) {
  knitr::kable(df)
} else {
  View(df)
}