2013-02-11 101 views
16

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

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

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

最后,我在集群上工作的是Unix x86_64。

+1

这样做肯定可行,'install.packages'函数将接受NULL存储库参数。 – 2013-02-11 06:04:56

+0

太棒了!我根本没有意识到这一点。只是为了确认下面的代码段应该工作,对吗? 'install.packages(pkgs = MyListofTARGZFiles,repos = NULL,lib = MyLibraryDirectory)' – 2013-02-11 06:09:12

+0

不确定形式主义是否可行,假设它真的是一个列表。第一个参数需要是一个字符向量。 – 2013-02-11 06:13:50

回答

22

可以使用下面的命令

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

手动查看的?install.packages帮助安装包,以进一步描述

+0

谢谢!只是为了确保:因为我在UNIX计算机上工作,不应该使用tar.gz格式的软件包吗? – 2013-02-11 06:10:40

+1

如果您的软件包源代码为'.tar.gz',那么它应该也可以工作 – iTech 2013-02-11 06:13:05

+0

请参阅以下答案:http://stackoverflow.com/a/30533227/3494126 – Ufos 2016-02-22 13:22:12

0

install.packages( “LIBNAME”,LIB =“文件://F:/ test“)

+0

对此问题已有更好的答案。 – 2017-04-20 20:03:56

+0

我添加了它,因为我自己对库的格式有问题。想想也许它有助于别人! – Angel 2017-04-21 06:23:56