将字符串比较符号转换为R中的函数



我想将比较符号转换为字符串格式,例如"gt"到R中的比较函数。例如,反勾格式">"。

我知道我能做到:

compare <- function(symbol, left, right) {

# possible symbols ">", ">=", "<", "<=", "="
if(symbol == ">") return(`>`(left, right)) 
if(symbol == ">=") return(`>=`(left, right)) 
if(symbol == "<") return(`<`(left, right)) 
if(symbol == "<=") return(`<=`(left, right)) 
if(symbol == "=") return(`==`(left, right)) 
return(NA)
}
compare(">", 2, 3) # returns FALSE

但正如我所说,有没有一种转换为backtick或以简单的方式实现的选择?

谢谢!

您可以使用match.fun,它正是您想要做的:

compare <- function(symbol, left, right) {
match.fun(symbol)(left, right)
}
compare(">", 2, 3)
#[1] FALSE
compare("<", 2, 3)
#[1] TRUE

相关内容

  • 没有找到相关文章

最新更新