27

我想知道我是否可以使用knitr降价来即时创建一个包含来自我当前工作区的对象的报告。重现性不是这里的问题。我也在这里阅读了这个非常好的线程

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

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

2)在我的工作区中写一个引用某个lm对象的块。称呼summary(mylmobject)

3)编织它。

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

有没有办法使用当前工作区中的 R markdown 中的对象?这将是非常好的向非 R 人展示一些输出,同时仍然工作。

4

4 回答 4

36

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

  1. 向 RStudio提交功能请求,要求他们在当前 R 会话中支持编织,而不是强制启动新会话;
  2. 自己手动编织:(library(knitr); knit('your_file.Rmd')或者knit2html()如果您想一步完成 HTML 输出,或者rmarkdown::render()如果您使用的是R Markdown v2
于 2012-06-22T15:04:24.430 回答
29

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

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

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

load("C:/Users/Desktop/example_candelete.RData")
于 2012-10-31T23:08:57.923 回答
1

Markdownreports 包专为动态解析 Markdown 文档而设计。

于 2017-09-14T12:44:18.680 回答
0

正如 Julien Colomb 评论的那样,我发现在这种情况下最好的办法是保存大对象,然后在我定制降价时显式加载它们。如果您的数据来自 ODBC,并且您不想在修改字体和主题时重复运行整个查询,那么这是必须的。

于 2018-04-19T09:53:23.323 回答