减法方法为变量

时间:2016-04-18 16:46:49

标签: r

是否可以将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
}

2 个答案:

答案 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