我需要在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> .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)
。您可以使用其他文件,即使在每个当前目录级别也是如此。
感谢您的反馈,德克!我确实对.libPaths
如何工作感到困惑,谢谢你的澄清。
根据您的示例,我意识到问题是我无法访问其他目录。 .libPaths()
内部调用dir.exists()
,由于不可访问性而返回false
,因此新目录未添加到路径中。我只需要弄清楚如何提供访问权限。