use*_*672 3 arguments r function operators
是否可以提供逻辑(或算术)运算符作为 R 函数的参数。检查这个共享主题的SO问题。
f1 <- function(a, b) a>b
Run Code Online (Sandbox Code Playgroud)
然后
> f1(1,2)
[1] FALSE
Run Code Online (Sandbox Code Playgroud)
我如何实现允许我更改功能测试的运算符,例如
f2 <- function(a, b, operator = c('<', '>', '==')) { ... }
Run Code Online (Sandbox Code Playgroud)
那我愿意
> f2(1, 2, '<')
[1] TRUE
Run Code Online (Sandbox Code Playgroud)
在 R 中,所有运算符都是函数。因此,您只需要获取运算符函数并调用它即可。
f2 <- function(a, b, operator) getFunction(operator)(a, b)
f2(1, 2, '<')
#[1] TRUE
Run Code Online (Sandbox Code Playgroud)