如何使用sweaver处理不同的长任务?
我正在使用Rstudio和swave生成报告。 一切都很顺利,但我必须做很多不同的繁重的计算。 他们每个人都花了不同的时间 我的文件现在如下所示:如何使用sweaver处理不同的长任务?,r,latex,sweave,R,Latex,Sweave,我正在使用Rstudio和swave生成报告。 一切都很顺利,但我必须做很多不同的繁重的计算。 他们每个人都花了不同的时间 我的文件现在如下所示: \documentclass{article} \usepackage{amsmath} \usepackage{amscd} \usepackage[tableposition=top]{caption} \usepackage{ifthen} \usepackage[utf8]{inputenc}
\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}
如何在不重新计算所有任务(但仅最后一个任务)的情况下编译pdf
编辑:
也许最好的办法是切换到knitr并使用缓存。
有人能写下如何使用缓存解决此问题的代码吗?请看包含许多缓存解决方案的
缓存解决方案也很容易在块中自己完成:
if (!exists(someVar)) {
if (file.exists("cache/someVar.rds")) {
someVar <- readRDS("cache/someVar.rds")
} else {
someVar <- reallyExpensiveComputation()
saveRDS(someVar, "cache/someVar.rds")
}
}
如果(!存在(someVar)){
if(file.exists(“cache/someVar.rds”)){
someVar您可以实现一个简单的缓存系统-如果存在某些结果(打印图像、文本输出等),请使用它,否则请运行计算并保存结果。创建一些名称约定以一种巧妙的方式保存结果。如果切换到knitr
(可能是个好主意),则有一个内置缓存系统(谷歌“knitr cache”)人们仍然使用Swave?@Tylerinker:当然,这件不成熟的针织品到底是什么?我可能会搬到knitr。如果有更好的东西,请告诉我。你能写下如何使用knitr解决我最初的问题吗?
if (!exists(someVar)) {
if (file.exists("cache/someVar.rds")) {
someVar <- readRDS("cache/someVar.rds")
} else {
someVar <- reallyExpensiveComputation()
saveRDS(someVar, "cache/someVar.rds")
}
}