Windows 7:通过脚本安装多个R软件包

Windows 7:通过脚本安装多个R软件包,r,R,我正在尝试在Windows7上为R2.15.1的安装编写脚本。R安装很好,但我不知道如何从同一批脚本(或任何批脚本)安装多个包。下面是我调用简单R文件的脚本部分 "%ProgramFiles%\R\R-2.15.1\bin\R.exe" CMD BATCH "%~dp0R packages for GME.R" 下面是“R packages for GME.R”的内容,其中包含要安装的包 install.packages("CircStats","coda","deldir","gplots"

我正在尝试在Windows7上为R2.15.1的安装编写脚本。R安装很好,但我不知道如何从同一批脚本(或任何批脚本)安装多个包。下面是我调用简单R文件的脚本部分

"%ProgramFiles%\R\R-2.15.1\bin\R.exe" CMD BATCH "%~dp0R packages for GME.R"
下面是“R packages for GME.R”的内容,其中包含要安装的包

install.packages("CircStats","coda","deldir","gplots","igraph","ks","odesolve","RandomFields",dep=TRUE)
鉴于此,我尝试了以下方法:

  • 取得“C:\Program Files\R\R-2.15.1\library”的所有权,然后运行
    R CMD BATCH
    (无更改)
  • 将“完全控制”权限授予同一文件夹上的我的用户帐户,然后运行
    R CMD BATCH
    (无更改)
  • 通过Rprofile.site将库文件夹更改到另一个位置,然后运行
    R CMD BATCH
    (无更改)
  • 通过Rgui
    install.packages(“CircStats”、“coda”、“deldir”、“gplots”、“igraph”、“ks”、“odesolve”、“RandomFields”、dep=TRUE)”运行命令。
    (有效)
  • 到目前为止,我还没有使用CMD或批处理脚本来安装软件包。有什么我遗漏的吗?如有任何脚本包安装的替代方法,将不胜感激

    此外,我将要安装的机器适用于多个用户,因此系统范围的安装和配置是首选

    //

    编辑2012-11-06: 以下是.Rout文件中的错误消息:

    install.packages("CircStats","coda","deldir","gplots","igraph","ks","odesolve","RandomFields",dep=TRUE)
    Warning in install.packages("CircStats", "coda", "deldir", "gplots", "igraph",  :
      'lib = "coda"' is not writable
    Error in install.packages("CircStats", "coda", "deldir", "gplots", "igraph",  : 
      unable to install packages
    Execution halted
    

    如果我随后执行
    library(coda)
    ,它会在library(coda)中给出
    错误:没有名为“coda”的包

    odesolve包被折旧,并被deSolve替换。遇到此包时,R2.15.1抛出错误。这可能会给你带来麻烦。下面是一个脚本,我用于安装新R安装的软件包

    libs=c("CircStats","coda","deldir","gplots","igraph","ks","odesolve‌​","RandomFields")
    type=getOption("pkgType")                           
        CheckInstallPackage <- function(packages, repos="http://cran.r-project.org",
           depend=c("Depends", "Imports", "LinkingTo", "Suggests", "Enhances"), ...) {
             installed=as.data.frame(installed.packages())
        for(p in packages) {
            if(is.na(charmatch(p, installed[,1]))) { 
              install.packages(p, repos=repos, dependencies=depend, ...) 
                        }
          }
        } 
        CheckInstallPackage(packages=libs)
    
    libs=c(“CircStats”、“coda”、“deldir”、“gplots”、“igraph”、“ks”、“odesolve‌​","随机字段“)
    type=getOption(“pkgType”)
    
    CheckInstallPackageodesolve软件包已折旧,并已被deSolve取代。遇到此包时,R2.15.1抛出错误。这可能会给你带来麻烦。下面是一个脚本,我用于安装新R安装的软件包

    libs=c("CircStats","coda","deldir","gplots","igraph","ks","odesolve‌​","RandomFields")
    type=getOption("pkgType")                           
        CheckInstallPackage <- function(packages, repos="http://cran.r-project.org",
           depend=c("Depends", "Imports", "LinkingTo", "Suggests", "Enhances"), ...) {
             installed=as.data.frame(installed.packages())
        for(p in packages) {
            if(is.na(charmatch(p, installed[,1]))) { 
              install.packages(p, repos=repos, dependencies=depend, ...) 
                        }
          }
        } 
        CheckInstallPackage(packages=libs)
    
    libs=c(“CircStats”、“coda”、“deldir”、“gplots”、“igraph”、“ks”、“odesolve‌​","随机字段“)
    type=getOption(“pkgType”)
    
    CheckInstallPackage当您通过命令行执行时,它是如何“工作”的?它给你一个错误?它告诉您它已经成功了,但当您启动R和
    库(CircStats)
    时,它会说它没有安装?如果您收到某种错误消息,什么错误?我想您忘了将包名列表包装在
    c()
    中。尝试
    install.packages(c(“CircStats”、“coda”、“deldir”、“gplots”、“igraph”、“ks”、“odesolve”、“RandomFields”),dep=TRUE)
    I将.Rout中的错误消息添加到上面的原始问题中。以这种方式调用
    install.packages()
    时,R似乎无法写入库。当您通过命令行执行此操作时,它是如何“工作”的?它给你一个错误?它告诉您它已经成功了,但当您启动R和
    库(CircStats)
    时,它会说它没有安装?如果您收到某种错误消息,什么错误?我想您忘了将包名列表包装在
    c()
    中。尝试
    install.packages(c(“CircStats”、“coda”、“deldir”、“gplots”、“igraph”、“ks”、“odesolve”、“RandomFields”),dep=TRUE)
    I将.Rout中的错误消息添加到上面的原始问题中。这样调用
    install.packages()
    时,R似乎无法写入库。太好了!当从上述批处理脚本调用时(
    R CMD batch
    )。第2行有一个小语法错误:
    type=getOption(“pkgType”)
    应该是
    type=getOption(“pkgType”)
    (单括号)。太好了!当从上述批处理脚本调用时(
    R CMD batch
    )。第2行有一个小语法错误:
    type=getOption(“pkgType”)
    应该是
    type=getOption(“pkgType”)
    (单括号)。