Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种方法可以使用RStudio直接从您的工作区中删除标记?_R_Knitr_Rstudio - Fatal编程技术网

有没有一种方法可以使用RStudio直接从您的工作区中删除标记?

有没有一种方法可以使用RStudio直接从您的工作区中删除标记?,r,knitr,rstudio,R,Knitr,Rstudio,我想知道是否可以使用knitrmarkdown来动态创建一个报告,其中包含来自当前工作区的对象。再现性不是这里的问题。我也读得很好 但我仍然收到一条错误消息,抱怨找不到特定的对象 1) 假设我打开一个新的降价文档并保存它 2) 编写一个块,引用我工作区中的某个lm对象。调用summary(mylmobject) 3) 把它剪下来 不幸的是,报告已生成,但由于找不到对象,因此无法显示回归输出。请注意,如果我只将对象保存到.Rdata,然后直接从标记文件加载它,通常情况下它是有效的 有没有办法使用R

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

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

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

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

3) 把它剪下来

不幸的是,报告已生成,但由于找不到对象,因此无法显示回归输出。请注意,如果我只将对象保存到.Rdata,然后直接从标记文件加载它,通常情况下它是有效的

有没有办法使用R标记中当前工作区中的对象? 在非R人员仍在工作时向他们显示一些输出将非常好。

RStudio将在R标记文件中打开一个新的R会话,因此当前工作空间中的对象将不可用于该会话(它们是两个单独的会话)。两种解决方案:

  • 向RStudio提交文件a,要求他们在当前R会话中支持编织,而不是强制启动新会话
  • 自己手工编织:
    library(knitr);knit('your_file.Rmd')
    (或
    knit2html()
    ,如果您希望一步输出HTML,或
    rmarkdown::render()
    ,如果您正在使用)

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

    save.image("C:/Users/Desktop/example_candelete.RData")
    
    然后将其加载到MD文件中:

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

    该方法正是为动态解析降价文档而设计的

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

    我觉得选项1与可复制研究的范式背道而驰。@BrandonBertelsen你是对的,这正是RStudio每次都会打开一个新的R会话的原因;相比之下,Emacs/ESS在当前R会话中调用swave/knitr。但是,使用现有的R会话有以下优点:1。可以更快;2.帮助我们调试代码(例如,检查源文档生成的对象)好奇地想知道自2012年发布以来Rstudio或Knitr是否有任何更改?@ThomasSpeidel抱歉,但不是在这方面。感谢您的回答。实际上,在RStudio/Rmarkdown的最新版本中,我无法运行它,因为它在您的答案中,但从您的提示中,我很快找到了解决方案:
    library(markdown);render('your_file.Rmd')
    (以防需要更新)。谢谢。实际上我现在就是这么做的。问题是我有一个很大的会话,需要几分钟才能加载。我知道Rstudio是从可再现性方面来的,但是如果我们想使用降价来制作一个包含大量数据的可展示报告,我们需要手动编织。您可以使用save(mylmobject)而不是save.image()来选择保存的内容