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

时间:2018-03-01 21:14:05

标签: r

我需要在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"

2 个答案:

答案 0 :(得分:3)

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

public static Map<String, Object> map = new HashMap<String, Object>();
map.put("id", "2");
map.put("name", "TEST");

新的第一个将首先用于进行安装,或通过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()。您可以使用其他文件,即使在每个当前目录级别也是如此。

答案 1 :(得分:0)

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

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