R代码复杂时如何保持R和Rnw文件分离

时间:2015-12-01 21:10:04

标签: r knitr sweave

我想使用knitr根据长/复R脚本生成的结果生成动态文档。 我有以下要求:

  • Rnw文件只包含乳胶和短针织块,简而言之,我的意思是

<<chunk1>>= plotData <- getData(some,arguments) somePlottingFunction(plotData) @

<<chunk2>>= plotData <- getData(some,arguments) xTable(plotData) @ 我的意思是我不希望将大部分R代码与latex

混合在一起

我到目前为止所执行的操作是执行一个R脚本,该脚本会在工作空间中留下一些R个对象,然后使用这些对象并进行编织。

runFunctionAndKnit <- function(){
   source('theRscript.R')
   knit('theRnwFile.Rnw')
}

当我使用非常大的对象时出现问题,我只是不能让临时对象等待在脚本结束时编织(没有足够的RAM)

我快速红色knitr book(关于外部化),但找不到解决方案。除了保存要加载/编织的对象之后我不能做任何其他事情(这看起来像是在扼杀knitr的目的)?

举个例子说我有一些像这样的R代码:

main <- function(){
   #some stuff on 10s on lines

   ## @knitr chunk1
   # ...
   ## @knitr

   f1 <- function(){
     #some code
     ## @knitr chunk2
     #some stuff I'd like to knit
     ## @knitr
   }
   f1()

   #some other stuff

   ## @knitr chunk3
   # ...
   ## @knitr
}

是否有某种方法可以编织以下Rnw文件(某些R对象可能因范围而被销毁):

<<chunk1>>= @ <<chunk2>>= @ <<chunk3>>= @

0 个答案:

没有答案