【问题标题】:Trying to add a new library directory尝试添加新的库目录
【发布时间】:2019-03-10 05:25:49
【问题描述】:

我在 linux centos 上使用托管 RStudio。当我尝试安装软件包时,我得到一个非零退出状态错误。我已经安装了 R-devel。

从尝试安装软件包时读取输出到 r 控制台,我的用户看起来无法访问默认库路径。

我阅读了this SO 的帖子,内容是添加一个新的库目录,甚至将其设为默认目录。

在 RStudio GUI 的右下方窗格中,我创建了一个新目录“mylibs”。

我尝试根据 SO 帖子添加到 libPaths():

.libPaths( c( .libPaths(), "~/mylibs") )

然后我输入了.libPaths()

.libPaths()
[1] "/home/rstudio/R/x86_64-redhat-linux-gnu-library/3.4"
[2] "/usr/lib64/R/library"                               
[3] "/usr/share/R/library"   

所以看起来失败了。我想知道我是否没有指定正确的目录。所以,在 RStudio 中我输入了getwd(),这表明我在"/home/rstudio"。于是,我又试了一下:.libPaths( c( .libPaths(), "~/home/rstudio/mylibs") )

但是,当我检查 .libPaths() 时,没有任何变化,与上面显示的 3 相同。

如何将 mylibs 目录添加到 .libPaths() 以便下载和安装软件包?

【问题讨论】:

  • “~/mylibs”文件夹是否真的存在。如果文件夹不存在,.libPaths() 函数将不会添加文件夹。另外,为了清楚起见,~ 将扩展到您的主目录(不是当前工作目录)。如果您尝试指定的文件夹不在您的主目录中,则不需要该部分。最好使用完全限定的路径(以“/”开头)。

标签: r rstudio


【解决方案1】:

调用.libPaths() 前置,因为顺序是从左到右。在这台 CentOS 机器上:

R> .libPaths()
[1] "/home/USER/R/x86_64-redhat-linux-gnu-library/3.4" "/usr/local/lib/R/site-library"
[3] "/usr/lib64/R/library"                             "/usr/share/R/library"  
R>
R> .libPaths("/tmp")   # adding in session
R> .libPaths()
[1] "/tmp"                  "/usr/local/lib/R/site-library"
[3] "/usr/lib64/R/library"  "/usr/share/R/library"         
R> 

您可以通过在启动时读取的不同“点”文件(即.Renviron.Rprofile 等)来管理其中的内容。有关所有血腥细节,请参阅help(Startup)

编辑:关于@MtFlick 的评论:

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

【讨论】:

  • 我认为问题不在于文件夹在列表中的添加位置;问题似乎是它根本没有添加。我认为这是一个不同的问题。
  • 当目录不存在时会发生这种情况。
猜你喜欢
  • 1970-01-01
  • 2021-09-01
  • 2013-11-09
  • 2015-01-06
  • 1970-01-01
  • 2021-07-09
  • 1970-01-01
  • 2016-01-30
  • 1970-01-01
相关资源
最近更新 更多