1

我正在使用 Rstudio 和 sweave 来构建报告。一切都运行良好,但我必须做很多不同的繁重计算。他们每人花费不同的时间。

我的文件现在看起来像这样:

    \documentclass{article}

    \usepackage{amsmath}
    \usepackage{amscd}
    \usepackage[tableposition=top]{caption}
    \usepackage{ifthen}
    \usepackage[utf8]{inputenc}

    \begin{document}
    \SweaveOpts{concordance=TRUE}

    \title{OES dataset}
    \author{Luca Puggini}

    \maketitle

    \section{The dataset}
   This is my data:
<<echo=T>>=
#suppose this  is a very heavy task that takes a lot of time
x=matrix(rnorm(100),10,10)
y=rnorm(10)
@
\section{operation}
Now let's do some operations 
<<echo=T>>=
x=x+1
y=y+10
@

\end{documents}

例如,现在我更改最后一行

y=y+10000 # instead of y=y+10

如何在不重新计算所有任务(但只有最后一个任务)的情况下编译 pdf?

编辑:可能最好的办法是切换到 knitr 并使用缓存。有人可以写下如何用缓存解决这个问题的代码吗?

4

1 回答 1

2

查看 Reproducible Research的任务视图,其中涵盖了许多缓存解决方案。

缓存解决方案也很容易自己做:

 if (!exists(someVar)) {
     if (file.exists("cache/someVar.rds")) {
         someVar <- readRDS("cache/someVar.rds")
     } else {
         someVar <- reallyExpensiveComputation()
         saveRDS(someVar, "cache/someVar.rds")
     }
 }

knitr也从一开始就提供它。

于 2013-11-12T14:45:34.373 回答