r - 在 Rprofile.site 中使用 .libPaths 更改 R 默认库路径失败

标签 r rstudio r-faq library-path

我在 Windows 上运行 R,而不是以管理员身份运行。当我安装软件包时,以下命令不起作用:

> install.packages("zoo")
Installing package(s) into ‘C:/Program Files/R/R-2.15.2/library’
(as ‘lib’ is unspecified)
Warning in install.packages :
  'lib = "C:/Program Files/R/R-2.15.2/library"' is not writable

要安装软件包,我必须指定库位置:

install.packages("zoo", lib="C:/software/Rpackages")

要加载包,我还必须指定库位置:

library("zoo", lib.loc="C:/software/Rpackages")

所有这些都很好,但我想看看是否可以将 C:/software/Rpackages 添加到库路径中,从而不必每次都键入它。

当我在线搜索时,我发现一种方法是编辑 Rprofile.site 文件并添加以下行

.libPaths("C:/software/Rpackages")

但是,执行此操作并启动 RStudio 后,这是我得到的输出

> .libPaths()
[1] "C:/Program Files/R/R-2.15.2/library" "C:/Program Files/RStudio/R/library" 

我添加到Rprofile.site.libPaths命令似乎没有任何效果!为什么会这样呢?或者更重要的是,如何解决问题,以便无需输入库位置即可安装和加载软件包?

注意:如果我启动 RStudio,.libPaths() 命令似乎会按预期工作

.libPaths("C:/software/Rpackages")
> .libPaths()
[1] "C:/software/Rpackages"               "C:/Program Files/R/R-2.15.2/library"

这不是很奇怪吗?

最佳答案

正确的解决方案是设置环境变量 R_LIBS_USER到所需库文件夹的文件路径的值,而不是让 RStudio 识别 Rprofile.site 文件。

设置环境变量R_LIBS_USER在 Windows 中,转到控制面板(系统属性 -> 高级系统属性 -> 环境变量 -> 用户变量)设置所需的值(库文件夹的路径),例如

Variable name: R_LIBS_USER 
Variable value: C:/software/Rpackages  

如果由于某种原因您无法访问控制面板,您可以尝试运行 rundll32 sysdm.cpl,EditEnvironmentVariables从 Windows 上的命令行并从那里添加环境变量。

设置 R_LIBS_USER 将确保该库首先显示在 .libPaths() 中,无论是直接启动 RStudio 还是通过右键单击文件并“打开方式”来启动 RStudio。

如果 RStudio 始终通过单击 RStudio 快捷方式启动,则 Rprofile 解决方案可以正常工作。在这种情况下,setting the default working directory to the directory that houses your Rprofile就足够了。单击文件启动 RStudio 时,Rprofile 解决方案不起作用,因为这会将工作目录更改为默认工作目录。

关于r - 在 Rprofile.site 中使用 .libPaths 更改 R 默认库路径失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15170399/

相关文章:

r - 引用函数的有效表达式

r - ggvis 是否可以交互地更改 x 轴和 y 轴的变量?

r - 如何将数据从长格式 reshape 为宽格式

r - 将数据框转换为列表

RStudio - 更改 R 版本不起作用

yaml - 在 RStudio 中使用类 "lesson.yaml"编写漩涡类(class) "text"时添加新的行/换行符

Rstudio 正在更改我的默认 R Notebook 输出

r - 将带有美元符号 ($) 的变量与 facet_grid() 或 facet_wrap() 组合传递给 aes() 时出现问题

r - 使用dplyr和select_()从数据框中选择列列表