R / RStudio:.libPaths()不会附加或覆盖库树

问题描述 投票:0回答:2

我需要在R中设置库路径一次使用(即我不想要,也不能在Rprofile.site中设置它,也不能将其他包放入默认库中)。

我尝试使用.libPaths()附加和覆盖库路径,但都没有工作;路径保持不变。看下面我的尝试。

由于我看到的例子与我的尝试有效,我觉得这可能是一个授权问题:我根本无权改变路径。

我搜索了stackoverflow,但问题/解决方案与我的问题不符。有什么建议?不,turning it off and on again不会帮助。

我的环境是Mac(High Sierra),R 3.4.3,RStudio 1.1.423,R newbie user(不是root)。

谢谢!

原始路径

> .libPaths()
[1] "/Library/Frameworks/R.framework/Versions/3.4/Resources/library"
> .Library
[1] "/Library/Frameworks/R.framework/Resources/library"

试图追加

> .libPaths( c( .libPaths(), "<some_other_valid_path>") )
> .libPaths()
[1] "/Library/Frameworks/R.framework/Versions/3.4/Resources/library"
> .Library
[1] "/Library/Frameworks/R.framework/Resources/library"

试图覆盖

> .libPaths("<some_other_valid_path>")
> .libPaths()
[1] "/Library/Frameworks/R.framework/Versions/3.4/Resources/library"
> .Library
[1] "/Library/Frameworks/R.framework/Resources/library"
r
2个回答
3
投票

我想你只是困惑自己。只需添加一个目录即可:

R> .libPaths()
[1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library" 
[3] "/usr/lib/R/library"           
R> .libPaths("/tmp")
R> .libPaths()
[1] "/tmp"                    "/usr/local/lib/R/site-library" 
[3] "/usr/lib/R/site-library" "/usr/lib/R/library"           
R> 

新的首先出现,因此将首先用于安装,或通过library()等进行搜索。

你不能从现有的会话中覆盖 - 就像切断你所坐的树枝一样。

但是看看help(Startup)。您可以使用其他文件,即使在每个当前目录级别也是如此。


0
投票

感谢您的反馈,德克!我确实对.libPaths如何工作感到困惑,谢谢你的澄清。

根据您的示例,我意识到问题是我无法访问其他目录。 .libPaths()内部调用dir.exists(),由于不可访问性而返回false,因此新目录未添加到路径中。我只需要弄清楚如何提供访问权限。

© www.soinside.com 2019 - 2024. All rights reserved.