![Sweave 块的条件评估](https://linux22.com/image/325131/Sweave%20%E5%9D%97%E7%9A%84%E6%9D%A1%E4%BB%B6%E8%AF%84%E4%BC%B0.png)
我正在使用一些 R 代码来导入和操作时间序列。该代码需要几分钟才能运行,因此会生成一个相对较小的时间序列。
现在,为了防止排版花费大量时间,我想我可以直接将最终结果导入 R/Sweave,但同时,我希望没有保存对象的人能够自动生成它。就像
\IfFileExists{"data.dat"}{
<<echo=FALSE>>=
## import data ##
@
<<eval=FALSE>>=
## code to generate data ##
@
}
{
<<>>=
## code to generate data ##
@
<<echo=FALSE>>=
## save data in data.dat ##
@
}
问题是 Sweave 编译忽略了\IfFileExists
并执行了两个块。有没有办法阻止 Sweave 在满足特定条件(即文件存在)时执行块?
答案1
你不需要 LaTeX,只需要 R:
if (file.exists("data.dat")==TRUE) cat("yes") else cat ("no")