首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows 7:通过脚本安装多个R包

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

Stack Overflow用户
提问于 2012-11-05 23:22:20
回答 1查看 5.4K关注 0票数 4

我试图在Windows 7上编写安装R2.15.1的脚本。r安装得很好,但我不知道如何从同一个批处理脚本(或任何批处理脚本)中安装多个包。下面是脚本的一部分,我调用一个简单的R文件。

代码语言:javascript
复制
"%ProgramFiles%\R\R-2.15.1\bin\R.exe" CMD BATCH "%~dp0R packages for GME.R"

以下是“GME.R软件包”的内容,其中包含了要安装的软件包。

代码语言:javascript
复制
install.packages("CircStats","coda","deldir","gplots","igraph","ks","odesolve","RandomFields",dep=TRUE)

考虑到文档化的所有权和ACL在Windows中写入默认库文件夹时出现问题,我尝试了以下几种方法:

  1. 获取"C:\Program \R-2.15.1\library“的所有权,然后运行R CMD BATCH <file> (无更改);
  2. 将“完全控制”权限授予同一文件夹上的用户帐户,然后运行R CMD BATCH <file> (无更改);
  3. 通过Rprofile.site将库文件夹更改为另一个位置,然后运行R CMD BATCH <file> (无更改);
  4. 通过Rgui install.packages("CircStats","coda","deldir","gplots","igraph","ks","odesolve","RandomFields",dep=TRUE)运行命令(works)。

到目前为止,我还没有成功地使用CMD或批处理脚本来安装软件包。我遗漏了什么吗?任何脚本包安装的替代方式都将受到极大的欢迎。

此外,我将安装的机器是为多个用户,所以系统范围的安装和配置是首选。

//

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

代码语言:javascript
复制
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),它就会给出Error in library(coda) : there is no package called ‘coda’

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-06 00:22:51

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

代码语言:javascript
复制
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)
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13242024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档