我想将比较符号转换为字符串格式,例如"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