我无法找到有关如何在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
答案 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文件。
如果有人能想出一种方法来提高效率,我会很感激。