我想知道在R中是否存在一种优雅的方法来减少(数学)函数中的参数数量。例如,假设我有一个函数
f1 = function(x, a) {x^2 + a},
并假设我想使用特定值a
更新此函数。如何才能获得仅依赖于x
的新功能?像这样的东西(伪代码):
f2 = function(x) f1(x, a = concrete value)
如何在R中完成?我对R编程很新,在其他地方找不到答案。
答案 0 :(得分:2)
你可以。这是一个简单的方法
f1 <- function(x, a) x^2 + a
f2 <- function(x) f1(x, 2)
然后举个例子,
f1(4, 2)
[1] 18
返回与
相同的值f2(4)
[1] 18
答案 1 :(得分:1)
我认为你所追求的是一些函数式编程语言中的“部分应用程序”。对于R,有几种实现。以下是一些:
library(functional)
f2 <- Curry(f1, a=2)
> f2(10)
[1] 102
library(pryr)
f2 <- partial(f1, a=2)
> f2(10)
[1] 102