乘法函数

时间:2014-12-12 18:45:29

标签: r function

假设我在R中有两个数字函数,例如,cos和exp。有一个新的函数对象f(x)= cos(x)* exp(x)的最快方法是什么?我可以将其定义为

f <- function(x) {cos(x)*exp(x) }

但有一种简便的方法(例如f = cos * exp)

1 个答案:

答案 0 :(得分:5)

如果你这么做了,你可以定义一个二元运算符:

"%*f%" = function(x, y) {
    force(x)
    force(y)
    function(z) x(z) * y(z)
}

f = cos %*f% exp
x = runif(10)

> identical(f(x), cos(x) * exp(x))
[1] TRUE

这具有可连锁的优势:

g <- cos %*f% exp %*f% log %*f% mean
g(x) # works appropriately