我在Stack Overflow上看过类似的问题,但几乎没有确凿的答案,当然也没有对我有用的答案.
在Markdown(Rstudio)脚本中访问和使用位于全局R环境中的对象(回归拟合,数据框架,其他对象)的最简单方法是什么.
鉴于RStudio团队倾向于让事情变得舒适和有效,我觉得令人惊讶的是,没有简单的解决方案.
提前致谢.
无论好坏,这种遗漏都是故意的.依赖在文档外部创建的对象会使文档的可重现性降低 - 也就是说,如果您的文档需要全局环境中的数据,那么您不能仅仅向某人(或您自己在两年内)提供文档和数据文件并让它们重新创建它本身.
出于这个原因,为了在后台执行渲染,RStudio实际上创建了一个单独的R会话来渲染文档.该背景R会话无法看到您在RStudio中看到的交互式R会话中的任何环境.
解决此问题的最佳方法是使用您用于创建全局环境内容的代码并将其移动到文档中(echo = FALSE
如果您不希望它显示在文档中,则可以使用).这使您的文档自包含且可重现.
如果您不能这样做,可以采取一些方法直接在全局环境中使用数据:
而不是使用Knit HTML按钮,rmarkdown::render("your_doc.Rmd")
在R控制台上键入.这将编织当前会话而不是后台会话.或者:
在渲染之前将您的全局环境保存为.Rdata文件(使用R的保存功能),并将其加载到文档中.