传递不带反引号的运算符

Lyn*_*akr 5 r

我有一个函数,我想将运算符传递给它,如下所示:

foo <- function(a, b, op){
  op(a, b)
}

foo(1, 2, `>`)
#> [1] FALSE
Run Code Online (Sandbox Code Playgroud)

reprex 包(v0.3.0)于 2020 年 7 月 31 日创建

这正是我想要的。我的问题是,我可以在没有反引号的情况下实现相同的目标吗?也就是说,函数调用将是

foo(1, 2, >)
Run Code Online (Sandbox Code Playgroud)

tmf*_*mnk 1

我想这并不能完全回答你的问题,但你可以用它magrittr来避免反棍:

foo(a = 1, b = 2, op = is_less_than)

[1] TRUE

foo(a = 1, b = 2, op = is_greater_than)

[1] FALSE
Run Code Online (Sandbox Code Playgroud)