R包安装在2个不同的位置

时间:2015-12-11 06:20:00

标签: r package install version

我在两个位置安装了R包ape,它们是.libPath()的两部分 - 位置1中的ape版本3.3 - 位置2中的ape版本3.4

ape版本3.4中的

,有一个新函数clustalomega。我没有加载任何2个包(使用library

ape::clustalomega无法在我的计算机上运行。我怀疑这是因为R首先考虑了它在location1中发现的ape旧版本。

我试图使用.libPath(rev(.libPath())来反转libPath的顺序,但它没有改变任何内容。

有没有办法确保我们从位置2优先获取包(我无法控制location1上安装的内容)

1 个答案:

答案 0 :(得分:1)

解决方案在于功能unloadNamespace。似乎当R启动时,尽管它没有加载library("ape"),它仍然会加载包的命名空间,从它可以找到的第一个lib.loc(在本例中为location1)

因此,为了强制从其他位置加载命名空间,我们需要这样做:

  

ape :: clustalomega#不存在
  “ape”%in%loadedNamespaces()#returns TRUE
   unloadNamespace(ns ='ape')'ape'%in loadedloadedNamespaces()#returns FALSE   loadNamespace(package ='ape',lib.loc = location2)

     

ape :: clustalomega#现在有效