如何取消屏蔽`library(...)`掩盖的函数?

时间:2017-01-20 17:23:55

标签: r

假设我想在> library(foo) Attaching package: ‘foo’ The following objects are masked from ‘package:bar’: baz 包中使用多个函数,但后来我遇到了这个:

foo

假设

  1. 我感兴趣的foo::baz中的函数完全独立于bar::baz;和
  2. 我想要foo::baz(现已屏蔽),而不是bar::baz
  3. 有没有办法让foo取消"%m-%Y"完全卸载NoMethodError in EncuestasController#update undefined method 'call' for Mon, 01 Jan -4712:Date Did you mean? caller

2 个答案:

答案 0 :(得分:3)

正如有人在评论中建议的那样,只需重新定义香草baz

baz <- bar::baz

答案 1 :(得分:1)

您现在还可以使用conflict_prefer()软件包中的conflicted函数来指定哪个软件包的函数应“获胜”,以及哪些函数名称存在冲突时应将其屏蔽(详细信息here )。在您的示例中,您将运行

conflict_prefer("baz", "bar", "foo")

在加载库之后。然后,当您运行baz时,它将默认使用bar::baz而不是foo::baz。或者您可以简单地运行

conflict_prefer("baz", "bar")

如果要使bar::baz的优先级高于所有其他软件包的baz函数。

(另请参见this post,这非常相似。)