是否可以将R中的减法(或除法)指定为对象并调用它?以下示例生成-1
a <- 1
b <- 2
method <- "-"
a method b
# Wanted result -1
method <- "/"
a method b
# Wanted result 0.5
为什么我需要这个
我想将函数参数设置为-
或/
。这样的事情:
dummyF <- function(a, b, method) {
a get(method) b
}
答案 0 :(得分:8)
您可以使用反引号,然后使用普通函数表示法调用函数,而不是中缀表示法:
foo <- `-`
foo(1,2)
列表中的示例:
l <- list(add = `+`,subtract = `-`)
> l[["add"]](1,2)
[1] 3
> l[["subtract"]](1,2)
[1] -1
答案 1 :(得分:6)
我们可以使用do.call
method <- "-"
do.call(method, list(a,b))
#[1] -1
method <- "/"
do.call(method, list(a,b))
#[1] 0.5