14

通常我使用以下方式安装软件包:

install.packages("foo") 

和互联网上的回购。但是我现在有一台新机器,我想从我现有的安装中复制这些包,而不必再次从互联网上删除所有内容。(我有很多包裹和缓慢的互联网访问)

两台机器都是 Windows 并运行相同的 R 版本。(2.13.1)

有没有办法做到这一点?我能得到的最接近的是我知道我可以使用以下方法从本地 zip 文件安装:

install.packages("pathtozip", repos = NULL)

但是 R 是否将所有 Zips 存储在某个地方?我在以下位置找到了一些:

C:\Documents and Settings\foouser\Local Settings\Temp\RtmpjNKkyp\downloaded_packages

但不是所有的。

有小费吗?

4

3 回答 3

14

该函数.libPaths将为您提供机器上所有库的向量。在您的旧机器上运行它以找到所有这些。您可以简单地将所有这些文件复制到新机器上的库中(也可以.libPaths在其上运行以找出位置)。

或者,如果您想在您的计算机或可以更新的网络驱动器上设置一个真正的存储库(即基本上是一个 CRAN 镜像),您可以将二进制或源程序包放入一个文件夹并tools::write_PACKAGES在该文件夹上运行。您可以install.packages使用contriburl参数运行它们并将其指向您的存储库文件夹。

于 2013-02-25T06:25:39.060 回答
12

您安装的所有软件包都存储在名为 win-library\r-version 的文件夹中,例如 C:\Users\Ehsan\Documents\R\win-library\2.15 所以,复制里面的所有文件夹就足够了2.15 到新机器的同一个文件夹。因为你有相同版本的 R,你不需要通过 update.packages() 来更新它们。

于 2013-02-25T06:07:09.633 回答
-2

在您的原始计算机上,运行

write.csv(unique(data.frame(installed.packages())[,1]),"packages.csv",row.names=F)

将此 .csv 保存到新计算机的工作目录中,然后运行

install.packages(as.character(read.csv("packages.csv")[,1]))

您可以检查您的工作目录正在使用什么getwd()

于 2019-01-09T21:36:23.630 回答