2013-02-25 33 views
11

新的计算机通常使用我安装软件包。但是现在我有了一台新机器,可以从现有的安装中复制软件包,而无需再次将所有内容都从互联网上重新下载。 (我有大量的软件包和较慢的互联网访问)移动R封装到没有互联网

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

有没有办法做到这一点?最近我可以得到的,我知道我可以利用本地的zip文件安装:

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

但并不[R存储所有拉链的地方?我发现了一些像位置:

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

但不是全部。

任何提示?

+1

批处理文件中的'copydir.bat'和'movedir.bat'将分别复制和移动库。请参阅http://batchfiles.googlecode.com。在每个文件的顶部查看注释。 – 2013-02-25 06:01:33

+2

这个问题已经存在了,我现在似乎无法找到,但我记得@DWin给出了一个非常可靠的答案。 – 2013-02-25 07:06:37

+0

谢谢@ G.Grothendieck和RSaporta。会尝试。 – 2013-02-25 07:29:17

回答

11

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

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

+0

刚刚经历了这个过程后,第二种方法(本地CRAN镜像,使用'tools :: write_PACKAGES'等)可能遇到的问题是某些库可能会丢失(例如'stringi'使用'ICU4C'库,当连接到互联网时它会自动安装)。这个评论意味着人们走上这条道路。 – steveb 2016-11-11 17:04:44

+0

我也遇到过这个问题。您可以单独下载或将其预先安装在机器上。无论哪种情况,项目页面中的[安装说明](https://github.com/gagolews/stringi/blob/master/INSTALL)都很有用。 – 2016-11-14 10:39:16

+0

我最终使用安装说明使用GitHub构建了stringi。这工作得很好,并处理ICU4C的依赖。 – steveb 2016-11-14 13:30:27

8

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