I L*_*ode 186 r library-path rstudio r-faq
我在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
Run Code Online (Sandbox Code Playgroud)
要安装软件包,我必须指定一个库位置:
install.packages("zoo", lib="C:/software/Rpackages")
Run Code Online (Sandbox Code Playgroud)
要加载包,我还必须指定库位置:
library("zoo", lib.loc="C:/software/Rpackages")
Run Code Online (Sandbox Code Playgroud)
所有这一切C:/software/Rpackages
都没问题,但我想知道是否可以以某种方式添加到库路径,因此不必每次都输入它.
当我在网上搜索时,我发现一种方法是编辑Rprofile.site
文件并添加行
.libPaths("C:/software/Rpackages")
Run Code Online (Sandbox Code Playgroud)
但是,在执行此操作并启动RStudio之后,这就是我得到的输出
> .libPaths()
[1] "C:/Program Files/R/R-2.15.2/library" "C:/Program Files/RStudio/R/library"
Run Code Online (Sandbox Code Playgroud)
在.libPaths
我加入命令Rprofile.site
似乎并没有有任何影响!为什么会这样?或者更重要的是,如何解决问题以便我可以在不输入库位置的情况下安装和加载包?
注意:如果我启动RStudio,.libPaths()
命令似乎按预期工作
.libPaths("C:/software/Rpackages")
> .libPaths()
[1] "C:/software/Rpackages" "C:/Program Files/R/R-2.15.2/library"
Run Code Online (Sandbox Code Playgroud)
这不奇怪吗?
Paw*_*ian 192
正确的解决方案是将环境变量设置R_LIBS_USER
为所需库文件夹的文件路径的值,而不是让RStudio识别Rprofile.site文件.
要R_LIBS_USER
在Windows中设置环境变量,请转到控制面板(系统属性 - >高级系统属性 - >环境变量 - >用户变量)到所需的值(库文件夹的路径),例如
Variable name: R_LIBS_USER
Variable value: C:/software/Rpackages
Run Code Online (Sandbox Code Playgroud)
设置R_LIBS_USER将确保库首先显示在.libPaths()中,无论是直接启动RStudio还是右键单击文件并"打开方式"启动RStudio.
如果始终通过单击RStudio快捷方式启动RStudio,则Rprofile解决方案可以正常工作.在这种情况下,将默认工作目录设置为包含Rprofile的目录就足够了.单击文件以启动RStudio时,Rprofile解决方案不起作用,因为这会将工作目录更改为远离默认工作目录.
42-*_*42- 157
我通常会尝试将所有软件包保存在一个库中,但是如果要添加库,为什么不将新库附加到现有库中:
.libPaths( c( .libPaths(), "~/userLibrary") )
Run Code Online (Sandbox Code Playgroud)
然后我得到:
.libPaths( c( "~/userLibrary" , .libPaths() ) )
Run Code Online (Sandbox Code Playgroud)
该.libPaths
功能与大多数其他非图形功能略有不同.它通过副作用起作用.功能Sys.getenv
和Sys.setenv
该报告并改变R环境变量已经分道扬镳,但.libPaths
可以报告或改变其目标.有关R启动过程的信息可以在?Startup
帮助页面阅读,并且有RStudio材料:https://support.rstudio.com/hc/en-us/articles/200549016-Customizing-RStudio
在您的情况下,似乎RStudio不尊重Rprofile.site设置,或者可能通过从其中一个RStudio默认值读取.Rprofile设置来覆盖它们.还应该提到的是,此操作的结果还会将调用内容附加到.Library
和.Library.site
,这也是为什么RStudio(或任何其他IDE或网络安装)托管的R可能表现出不同行为的原因.
I L*_*ode 21
我设法通过将代码放在.Rprofile
默认工作目录中的文件来解决问题.
首先,我找到了默认工作目录的位置
> getwd()
[1] "C:/Users/me/Documents"
Run Code Online (Sandbox Code Playgroud)
然后我使用文本编辑器编写一个.Rprofile
包含以下行的简单文件
.libPaths("C:/software/Rpackages")
Run Code Online (Sandbox Code Playgroud)
最后,当我开始R
运行时,.libPaths()
我得到了所需的输出:
> .libPaths()
[1] "C:/software/Rpackages" "C:/Program Files/R/R-2.15.2/library"
[3] "C:/Program Files/RStudio/R/library"
Run Code Online (Sandbox Code Playgroud)
小智 12
https://superuser.com/questions/749283/change-rstudio-library-path-at-home-directory
编辑〜/ .Renviron
R_LIBS_USER=/some/path
Run Code Online (Sandbox Code Playgroud)
Wha*_*len 11
我发现了什么,我认为是一个解决方案在这里(谢谢你,卡尔·施瓦茨在SFU)添加个人库,永久(你不必把它定义每个会话)认可Rstudio是否使用R或Rstudio,并把它作为默认在我的Mac机器上.我没有看到它在SO上明确列出,所以我总结了他们为Windows提供的步骤,然后是Mac.
对于Windows 7操作系统:
在您想要拥有个人库的驱动器上创建一个目录,例如C:\ User\Rlibs(或您有权访问的其他目录)
在Windows搜索栏中搜索/转到"编辑帐户的环境变量"以编辑控制面板设置
单击"环境变量"窗口中间的"新建..."
在"新建用户变量"窗口中,键入"变量名称"的R_LIBS,以及您创建的个人库目录的路径,例如C:\ User\Rlibs
单击"确定",您将在"用户变量"窗口中看到"变量/值"对
再次单击确定
现在,当您启动R(或Rstudio)并键入命令时,.libPaths()
您应该看到您创建的个人库以及R系统库.
对于Mac:
在"Home"或"username"目录中,创建一个名为Rlibs的文件夹
启动终端应用程序
类型:echo "R_LIBS=~/Rlibs"> .Renvrion
确保案例匹配.
键入ls -a
以查看目录中的完整文件列表,该列表现在应包含.Renvrion
验证.Renviron文件是否已正确设置:more .Renviron
启动R/Rstudio并键入.libPaths()
,您应该看到个人库的新路径.
如果您没有admin-rights,打开Rprofile.site
位于\ R-3.1.0\etc中的-file 并添加:
.First <- function(){
.libPaths("your path here")
}
Run Code Online (Sandbox Code Playgroud)
这会.libPath()
在开始时直接评估命令
在 Ubuntu 上,更改用户默认库路径的推荐方法R_LIBS_USER
是在文件中设置变量~/.Renviron
。
touch ~/.Renviron
echo "R_LIBS_USER=/custom/path/in/absolute/form" >> ~/.Renviron
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
399959 次 |
最近记录: |