当前位置:  开发笔记 > 前端 > 正文

如何在Rstudio Markdown中使用来自全局环境的对象

如何解决《如何在RstudioMarkdown中使用来自全局环境的对象》经验,为你挑选了1个好方法。

我在Stack Overflow上看过类似的问题,但几乎没有确凿的答案,当然也没有对我有用的答案.

在Markdown(Rstudio)脚本中访问和使用位于全局R环境中的对象(回归拟合,数据框架,其他对象)的最简单方法是什么.

鉴于RStudio团队倾向于让事情变得舒适和有效,我觉得令人惊讶的是,没有简单的解决方案.

提前致谢.



1> Jonathan..:

无论好坏,这种遗漏都是故意的.依赖在文档外部创建的对象会使文档的可重现性降低 - 也就是说,如果您的文档需要全局环境中的数据,那么您不能仅仅向某人(或您自己在两年内)提供文档和数据文件并让它们重新创建它本身.

出于这个原因,为了在后台执行渲染,RStudio实际上创建了一个单独的R会话来渲染文档.该背景R会话无法看到您在RStudio中看到的交互式R会话中的任何环境.

解决此问题的最佳方法是使用您用于创建全局环境内容的代码并将其移动到文档中(echo = FALSE如果您不希望它显示在文档中,则可以使用).这使您的文档自包含且可重现.

如果您不能这样做,可以采取一些方法直接在全局环境中使用数据:

    而不是使用Knit HTML按钮,rmarkdown::render("your_doc.Rmd")在R控制台上键入.这将编织当前会话而不是后台会话.或者:

    在渲染之前将您的全局环境保存为.Rdata文件(使用R的保存功能),并将其加载到文档中.


也可以使用`knitr :: knit("your_doc.Rmd")`.R Studio"Knit HTML"按钮可能正在使用rmarkdown或knitr引擎,具体取决于一个人的偏好设置,并且在某些情况下它们的行为可能略有不同
问题解决了(cache.lazy = T).谢谢你们两个.
推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有