在R中手动下载和安装软件包

时间:2013-02-11 05:59:35

标签: r

我目前正在尝试在计算群集上运行一些R代码,但由于我的群集上有一些奇怪的防火墙设置,因此无法运行install.packages功能。由于我只在R代码中使用了一些软件包,因此我希望通过手动下载和安装软件包来避免使用install.packages函数。

注意:我知道有一种方法可以通过使用R FAQ中描述的HTTP代理来避免此问题。不幸的是,负责我的集群的人没有帮助设置它,所以我不得不考虑这种替代方法。

理想情况下,我想将软件包从CRAN下载到我的计算机,然后将这些文件上传到集群并使用R中的相应命令安装它们。此外,我还要确保软件包是安装到我选择的位置,因为我没有在默认R目录中“写”的权限(我相信我可以使用.libPaths函数在R中执行此操作)

最后,我在群集上使用的计算机是Unix x86_64。

4 个答案:

答案 0 :(得分:26)

您可以使用以下命令手动安装软件包

install.packages('package.zip', lib='destination_directory',repos = NULL)

有关详细说明,请参阅?install.packages的帮助

答案 1 :(得分:1)

这是更好的方法,如果我们想在本地下载和安装:

download.packages('lib_name',destdir='dest_path')

例如:

download.packages('RJDBC',destdir='d:/rlibs')

答案 2 :(得分:0)

install.packages(“libname”,lib =“file:// F:/ test”)

答案 3 :(得分:0)

在安装插入符号包时,我也遇到了同样的问题,插入符号包有很多依赖性。 所以,我做了以下

install.packages('插入符') 这将使所有zip格式的软件包的下载位置显示在错误消息中。将所有软件包从下载源解压缩到某个位置,例如在'C:/ PublicData / RawRPackages'中,然后运行以下命令。

foldername<-'C:/PublicData/RawRPackages'
install.packages(paste(foldername , 'caret',sep='/'), repos = NULL, type="source")
library(caret, lib.loc=foldername)