减少R中函数的参数个数

时间:2016-07-19 16:41:04

标签: r function

我想知道在R中是否存在一种优雅的方法来减少(数学)函数中的参数数量。例如,假设我有一个函数

f1 = function(x, a) {x^2 + a},

并假设我想使用特定值a更新此函数。如何才能获得仅依赖于x的新功能?像这样的东西(伪代码):

f2 = function(x) f1(x, a = concrete value)

如何在R中完成?我对R编程很新,在其他地方找不到答案。

2 个答案:

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

pryr library

library(pryr)
f2 <- partial(f1, a=2)

> f2(10)
[1] 102