有没有办法使用RStudio直接从工作区中编织降价?

时间:2012-06-22 11:18:32

标签: r knitr rstudio

我想知道我是否可以使用knitr markdown来创建一个动态报告,其中包含源自当前工作空间的对象。再现性不是问题。我也读得很好thread here

但是我仍然收到一条错误消息,抱怨无法找到特定对象。

1)假设我打开一个新的降价文档并保存。

2)编写一个引用我工作区中某个lm对象的块。致电summary(mylmobject)

3)编织它。

不幸的是生成了报告,但无法显示回归输出,因为无法找到该对象。注意,如果我只是将对象保存到.Rdata然后直接从markdown文件加载它,它通常工作。

有没有办法在当前工作区中使用R markdown中的对象? 这对于非R人在继续工作时显示一些输出非常好。

4 个答案:

答案 0 :(得分:32)

RStudio打开一个新的 R会话到你的R Markdown文件knit(),因此当前工作空间中的对象将无法用于该会话(它们是两个单独的会话)。两种解决方案:

  1. 向RStudio提交feature request,要求他们支持当前R会话中的编织,而不是强行开始新会话;
  2. 由您自己手动编织:library(knitr); knit('your_file.Rmd')(或knit2html()如果您希望一步完成HTML输出,或rmarkdown::render()如果您使用R Markdown v2

答案 1 :(得分:27)

使用以下方法可能更容易从其他会话中保存数据:

save.image("C:/Users/Desktop/example_candelete.RData")

然后将其加载到MD文件中:

load("C:/Users/Desktop/example_candelete.RData")

答案 2 :(得分:0)

Markdownreports package完全用于动态解析降价文档。

答案 3 :(得分:0)

正如Julien Colomb评论的那样,我发现在这种情况下最好的办法是保存大型物体,然后在我定制降价时明确加载它们。如果您的数据是通过ODBC发送的,并且您不希望在修改字体和主题时重复运行整个查询,则必须这样做。