直接从包源的URL安装R包

时间:2013-05-07 06:33:22

标签: r

我想直接从包源的URL安装包。我想这样做是为了让人们可以轻松测试不应广泛(或永久)可用的预发布版本的软件包。 This是一个类似的问题,但它有所不同,因为它只描述了如何从本地文件安装而不是一般的URL。

为了这个问题,我将使用boot包源的链接。阅读?install.packages特别是pkgs论证的描述建议:

install.packages(
  "http://cran.r-project.org/src/contrib/Archive/boot/boot_1.3-7.tar.gz", 
  repos = NULL, type = "source"
)

然而,这失败了:

Warning in install.packages :
  installation of package 
  ‘http://cran.r-project.org/src/contrib/Archive/boot/boot_1.3-7.tar.gz’ 
  had non-zero exit status

建议将URL解释为包名称,而不是其位置。 我们可以通过以下两步程序来解决这个问题:

download.file(
  "http://cran.r-project.org/src/contrib/Archive/boot/boot_1.3-7.tar.gz", 
  "boot"
)
install.packages("boot", repos = NULL, type = "source")

但我更愿意只拨一次install.packages来执行此操作;并且由于install.packages能够下载文件,我觉得这应该是可能的。

4 个答案:

答案 0 :(得分:23)

从3.1.1开始,

install.packages现在可以使用http网址(而不是https)。这对我有用:

install.packages("http://www.lepem.ufc.br/jaa/colorout_1.1-0.tar.gz", repos=NULL)

编辑:从R 3.2.0开始,https是通过libcurl构建的。这应该现在可以工作:

install.packages("https://github.com/hadley/devtools/archive/v1.7.0.tar.gz",
                 repos=NULL, method="libcurl")

编辑:从R 3.2.2起,https应该使用默认选项,假设编译了libcurl支持。

编辑2016-04-20:下载在S3上托管的软件包时可能会出现一些问题,但method='wget'目前似乎适用于那些软件包。

答案 1 :(得分:10)

请参阅devtools包中的?install_url

答案 2 :(得分:2)

为什么不设置将源包存储为存储库的目录?

Here is an example(尽管您可能希望将type="source"替换为该链接代码中的type="win.binary"

答案 3 :(得分:0)

如果该URL是github存储库,请尝试:install_github()

例如


library(devtools)

install_github("DeveloperName/PackageName")

# e.g. install_github("cran/seoR")