【问题标题】:rmarkdown Run Chunks not working with local directory in rStudiormarkdown 运行块不适用于 rStudio 中的本地目录
【发布时间】:2017-03-02 01:58:21
【问题描述】:

我正在使用 RStudio 进行开发并在上周安装了 RStudio 的开发版本(版本 1.0.34),因为我想使用 R Notebooks。 我现在遇到了问题,代码块不会与工作目录相关,而是与降价文档的位置相关。这在以前knitr 文档时很常见但在执行块时不
我现在下载了最新的开发版本(1.0.44),但仍然是同样的问题。 是否有解决此问题的方法,或者这是RStudiorMarkdown 的未来计划?我觉得这在开发文档的时候很不方便。

例如,我知道这篇帖子In RStudio/RMarkdown, how to setwd?,但这就是我执行块而不是编织整个文档的原因。它在RStudio <= 1.0.0 中按预期工作。

【问题讨论】:

    标签: r rstudio r-markdown


    【解决方案1】:

    这是未来的计划;这个想法是,无论是一次运行一个(交互式)还是一次运行一个批次(knitr),该块都应该以相同的方式运行。对这两种执行模式使用相同的工作目录为块内的相对路径提供了可靠的起点。

    如果您不喜欢这种行为,有几种方法可以选择退出。

    在 setup chunk 中设置目录

    运行块的工作目录不必是文档的目录;您可以在设置块中将其设置为您想要的任何内容。

    ```{r setup}
    knitr::opts_knit$set(root.dir = ...)
    ````
    

    改为在控制台中执行块

    如果您更喜欢以前版本的 RStudio 中的行为——即执行块仅将代码发送到控制台,它在当前工作目录中执行——您可以将其设为默认值。转到工具 -> 选项 -> R Markdown 并取消选中 Show output inline for all R Markdown 文档

    【讨论】:

    • 谢谢,这有帮助。但这意味着,如果我取消选中“显示所有 R Markdown 文档的内联输出”,那么这也意味着,与旧的 Markdown 相比,我有同样的缺点。就像我要编织 Notebook 时需要编译整个文档?
    • 有没有一种简单的方法可以将root.dir 设置为当前工作目录而不是markdown 文件的位置?这实际上可以解决我猜的整个问题:-)
    • 不,目前还没有办法。有足够多的人要求它,但我们可能会增加支持。但是,我们仍然希望保持 knitting + 交互式运行之间的对称性,因此您在文档中设置的内容会在交互式运行和 knitting 时导致块在当前目录(和/或项目目录)中运行。那会做你想要的吗?
    • 我想这就是我要找的。我喜欢使用类似于脚本的 RMD 的功能,我可以在我的工作目录中运行,而无需创建 RMD 的副本。但另一方面,将数字等与 R 代码一起内联真的很好。因此,如果您找到让这两个功能都正常工作的解决方案,那就太棒了! :-) 但是现在我想我会关闭内联输出以使一切按预期工作。谢谢!
    • @drmariod 一个旧帖子,但作为参考,您可以使用opts_knit$set(root.dir = rprojroot::find_rstudio_root_file()) 将当前工作目录设置为.Rproj 文件的位置。见stackoverflow.com/a/60159715/4241780
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-02
    • 2019-07-14
    • 2015-05-04
    • 2018-06-19
    • 2018-05-27
    • 2019-01-05
    相关资源
    最近更新 更多