R 在哪里存储包?
Posted
技术标签:
【中文标题】R 在哪里存储包?【英文标题】:Where does R store packages? 【发布时间】:2011-02-06 14:12:41 【问题描述】:R 中的install.packages()
函数是在 R 中获取和安装包的自动解压缩实用程序。
我如何知道 R 选择了哪个目录来存储包?
如何更改 R 存储和访问包的目录?
【问题讨论】:
【参考方案1】:install.packages 命令查看 .libPaths 变量。这是我在 OSX 上的默认设置:
> .libPaths()
[1] "/Library/Frameworks/R.framework/Resources/library"
默认情况下我不在那里安装软件包,我更喜欢将它们安装在我的主目录中。在我的 .Rprofile 中,我有这一行:
.libPaths( "/Users/tex/lib/R" )
这会将目录“/Users/tex/lib/R”添加到 .libPaths 变量的前面。
【讨论】:
这是我想做的,但我如何访问和.Rprofile?提示无法将其识别为对象或函数 这是一个文件。再次阅读精美的手册和/或帮助(启动)。 在 Windows 中,我有:C:\Users\MyName\Documents\R\win-library\3.5【参考方案2】:这在您的安装随附的“R 安装和管理”手册中有记录。
在我的 Linux 机器上:
R> .libPaths()
[1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library"
[3] "/usr/lib/R/library"
R>
表示默认路径是其中的第一个。您可以通过 install.packages()
(来自 R 内部)或 R CMD INSTALL
(R 外部)的参数来覆盖它。
您也可以通过设置 R_LIBS_USER 变量来覆盖。
【讨论】:
我有一台 Windows Vista 机器,但假设存在相同的过程,您是否在 install.packages() 参数列表中指定目录以及包名? 你发现'help(install.packages)'了吗?另外,请参阅我上一条评论中的“帮助(启动)”。并阅读那些手册。最后,在 *doze 时,我倾向于在文件 .Renviron 中设置 R_LIBS="C:/opt/R/library"。我知道你也会问这个问题——所以请阅读帮助(启动)。好的? ;-) 我的 Kindle 上有十几本 R 手册(包括 3,000 多页的第一页),但不知道启动帮助文件。我一直在阅读手册并遇到了死胡同。想想这一直是一个简单的答案。我是否会因 RTFM 问题而失分 3000+ 页面是所有帮助页面的整理——帮助最小。前面提到的“安装和管理”对于您在这里的目标应该非常有用。 是否有等效的方法可以从 bash 命令行中找到这些?即,如果未设置$R_LIBS
和 $R_LIBS_USER
,则指定 R 库安装位置的环境变量? (我希望能够在任何 Unix 系统上执行已安装包的 inst/
目录中的 R 脚本)。【参考方案3】:
感谢以上两位回答者的指导。 James Thompson 的建议最适合 Windows 用户。
转到安装 R 程序的位置。这在文献中被称为R_Home
。找到后,转到 /etc 子目录。
C:\R\R-2.10.1\etc
选择此文件夹中名为 Rprofile.site 的文件。我用vim打开它。您会发现这是一个不到 20 行代码的简单文件。我在代码中插入了以下内容:
# my custom library path
.libPaths("C:/R/library")
(添加评论以跟踪我对文件所做的操作。)
在 R 中,键入 .libPaths()
函数会在 C:/R/Library
处生成第一个目标
注意:可能有不止一种方法可以实现这一点,但我尝试的其他方法由于某种原因不起作用。
【讨论】:
我将上述行.libPaths=("C:/R/library")
复制到我的 Rprofile.site 文件中。我启动 R 2.13.1 64 位并收到此错误:错误:无法更改“.libPaths”的锁定绑定值我使用的是 Windows 7。
见Dave's answer:应该是.libPaths("...")
(调用而不是分配)。【参考方案4】:
你不想要'='
在你的Rprofile
.site 文件中使用.libPaths("C:/R/library")
并确保您有正确的 " 符号 (Shift-2)
【讨论】:
以上是关于R 在哪里存储包?的主要内容,如果未能解决你的问题,请参考以下文章