在 R 中,只要两个包定义了相同的函数,就很容易指定使用哪个包pkg::foo
。但是当冲突的函数是中缀运算符时,你怎么办,即使用定义%%
?
例如,两者ggplot2
和crayon
定义%+%
. 有没有一种方法我可以默认使用ggplot2
's %+%
,但在给定的行中使用crayon
's %+%
?只是crayon::`%+%`
调用正确的函数(注意反引号),但不再用作中缀运算符!?我可以crayon::`%+%`(a, b)
,它有效,但它不是作为操作员的功能!
代码:
> library(crayon)
> "foo" %+% "bar"
[1] "foobar"
> crayon::`%+%`("foo" ,"bar")
[1] "foobar"
> "foo" crayon::`%+%` "bar"
Error: unexpected symbol in ""foo" crayon"