如何让knitr在RStudio中使用相同的R会话?

时间:2017-01-02 10:08:37

标签: r rstudio knitr

如何让knitr在RStudio中使用相同的R会话?

仅供参考,我正在处理大量数据(R会话使用7 GB的RAM),我不想避免使用load('data.RData')

更新

Knitr在运行.Rmd时使用新的R会话。因此,找不到所有的R对象。这就是我必须使用函数load('mydata.RData')

的原因

由于

1 个答案:

答案 0 :(得分:2)

如果您直接在控制台中使用.Rnw个文件类型(假设工作目录是您的文件所在的位置):

knitr::knit("filename.Rnw")
# or 
knitr::knit2pdf("filename.Rnw") 

后者还会将filename.tex转换为filename.pdf

对于经典.Rmd文件,您可以使用相同的

knitr::knit("filename.Rmd") 
# or 
knitr::knit2html("filname.Rmd")

对于使用rmarkdown包使用

的较新工作流程
rmarkdown::render("filename.Rmd")

这是有效的,因为默认情况下knitrender函数将envir参数设置为envir=parent.frame(),这通常是R-Session的全局环境。

另一方面,通过单击R-Studio中的编织按钮调用knitrender会使用参数envir=new.env()调用这些函数。