【问题标题】:Prevent chunk evaluation in R Notebook interactive防止 R Notebook 交互中的块评估
【发布时间】:2017-12-15 19:39:00
【问题描述】:

使用块选项eval=FALSE 可以在 RMarkdown 文件或 R Notebook 编织时抑制块评估。有没有办法在 RStudio 中交互式运行文档时应用它(即,让“运行所有块”跳过某些块)?

我的分析开始时有一些需要一段时间才能运行的块,后面的部分不依赖这些块。我希望能够获取代码的重要部分,这样我就可以继续编写下游的东西,而不必逐块手动完成,这样我就可以避免工作区中不需要的部分进行进一步编写.

我已经使用逻辑参数设置了 rmarkdown 文档,这些参数旨在更改代码的哪些部分需要运行 - 我的意思是这些作为代码实际完成和使用时的控制标志,但我希望我可以使用这些相同的参数来排除块在交互模式下运行(例如,eval=params$run_part1)。

【问题讨论】:

    标签: r rstudio r-markdown rnotebook


    【解决方案1】:

    设置knitr::opts_chunkknitr::opts_hooks 只在编织时帮助你,而不是在交互模式下,所以虽然我可能是错的,但我要试探性地说你不能用动态块选项控制这种行为(还)。

    作为一种解决方法,您可以使用 interactive()if 块,以便代码仅在编织时运行。它也可以很好地与您的逻辑参数相吻合,尽管必须在括号中进行痛苦。

    ---
    title: "R Notebook"
    output:
      html_document: default
      html_notebook: default
    ---
    
    ```{r}
    if (!interactive()) {
      print("long running code")
    }
    ```
    
    ```{r}
    print(2)
    ```
    
    ```{r}
    print(3)
    ```
    

    按“运行上面的所有块”:

    针织:

    【讨论】:

    • 区分交互的能力很棒。现在我可以在写笔记本时摆脱运行失败的烦恼。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2021-07-01
    • 2017-07-15
    • 2015-12-21
    • 1970-01-01
    • 2021-07-23
    • 2012-08-30
    相关资源
    最近更新 更多