Windows批处理R Sweave错误加载包

时间:2010-08-24 16:18:29

标签: windows r batch-file sweave

我无法找到有关如何在Windows XP上为Sweave文档设置批处理文件的明确文档。

我正在使用找到here

的批处理文件

我创建了一个批处理文件名run.bat,其中包含以下内容:

Sweave myFile.Rnw

我在设置wd后在Sweave文件中做的第一件事是使用RODBC包在数据集中读取:

library(RODBC)
fetch <- odbcConnect("myDatabase")
myData <- "select * from myTable"
x <- sqlQuery(fetch, myData)
odbcCloseAll()

运行批处理文件时,收到以下错误:

Error: chunk 2
Error in library(RODBC) : there is no package called RODBC
In addition: Warning message:
In library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE, :
    there is no package called 'xtable'

显然这些软件包确实存在且功能正常,但是权限中的某些内容不正确,或者找不到正确的目录。有什么想法吗?

相关问题here

2 个答案:

答案 0 :(得分:1)

在R(在GUI中)中键入它时会返回什么?

 .libPaths()

在Rnw文件中运行时会显示什么?

help(Startup)中的文档会就您在何处设置R_LIBS及其变体提出一些建议。

答案 1 :(得分:1)

我发现了我的问题的直接解决方案,但我知道这种方法存在某些局限性。我放弃使用CRAN提供的.bat文件来动态查找到R的适当路径,并将路径硬编码为R:

"C:\Program Files\R\R-2.11.0\bin\Rterm.exe" --vanilla <%run.r>%run.r
 del *.log
 del *.aux

.bat文件将启动R,运行包含两个命令的脚本run.r

Sweave("myFile.Rnw")
tools::texi2dvi("myFile.tex", pdf=TRUE)

然后清除LaTeX输出中的中间.log.aux文件。显然,大部分工作都在myFile.Rnw完成,但这至少让我点击一个按钮,执行我的分析,并生成PDF文件。

如果有人能想出一种方法来提高效率,我会很感激。