当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R reprex reprex_render 在新的 R 会话中渲染文档


这是 rmarkdown::render() 的包装,强制执行 "reprex" 心态。这是所发生情况的简化版本:

callr::r(
  function(input) {
    rmarkdown::render(input, envir = globalenv(), encoding = "UTF-8")
  },
  args = list(input = input),
  spinner = is_interactive(),
  stdout = std_file, stderr = std_file
)

需要注意的主要特点

  • rmarkdown::render() 使用 callr::r() 在新的 R 会话中执行。目标是消除对象、附加包和会话状态的其他方面从当前会话泄漏到渲染会话中。此外,系统和 user-level .Rprofile 也会被忽略。

  • 代码在这个新 R 会话的 globalenv() 中进行评估,这意味着方法分派按照大多数人期望的方式工作。

  • 输入文件假定为 UTF-8,这是 v1.24 起的 knit 要求。

  • 如果 YAML frontmatter 包含 std_err_out: TRUE ,则渲染 R 会话的标准输出和错误将在 std_file 中捕获,然后注入到渲染结果中。

reprex_render() 设计用于使用 reprex_document() 输出格式,通常通过调用 reprex()reprex_render() 可以与其他 R Markdown 输出格式一起使用,但它不是 well-tested。

用法

reprex_render(input, html_preview = NULL, encoding = "UTF-8")

参数

input

要渲染的输入文件。这可以是 .R 脚本或 .Rmd R Markdown 文档。

html_preview

逻辑性强。是否在查看器(RStudio 或浏览器)中显示渲染输出。在非交互式会话中始终FALSE。阅读有关 opt() 的更多信息。

encoding

输入文件的编码。请注意,唯一可接受的值是 "UTF-8",从 v1.24 开始,knitr 要求使用该值。这纯粹是为了技术方便而作为参数公开,与 RStudio IDE 中的 "Knit" 按钮相关。

传递rmarkdown::render()的输出,即输出文件的路径。

例子

if (FALSE) {
reprex_render("input.Rmd")
}
源代码:R/reprex_render.R

相关用法


注:本文由纯净天空筛选整理自Jennifer Bryan等大神的英文原创作品 Render a document in a new R session。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。