减少R中函数的参数数

减少R中函数的参数数,r,function,R,Function,我想知道在R中是否存在一种优雅的方法来减少(数学)函数中的参数数量。例如,假设我有一个函数 f1 = function(x, a) {x^2 + a}, 假设我想用一个特定的值a来更新这个函数。如何获得仅依赖于x的新函数?类似这样的代码(伪代码): 如何在R中实现这一点?我对R编程相当陌生,在别处找不到答案。你可以。这里有一个简单的方法 f1 <- function(x, a) x^2 + a f2 <- function(x) f1(x, 2) 返回与相同的值 f2(4) [

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

f1 = function(x, a) {x^2 + a},
假设我想用一个特定的值
a
来更新这个函数。如何获得仅依赖于
x
的新函数?类似这样的代码(伪代码):


如何在R中实现这一点?我对R编程相当陌生,在别处找不到答案。

你可以。这里有一个简单的方法

f1 <- function(x, a) x^2 + a

f2 <- function(x) f1(x, 2)
返回与相同的值

f2(4)
[1] 18

我认为在某些函数式编程语言中,您所追求的是所谓的“部分应用程序”。R有几种实现方法。以下是一些:

功能库
库(功能性)
f2(10)
[1] 102
普赖尔图书馆
库(pryr)
f2(10)
[1] 102

如您所述,可以很方便地完成。例如,如果
a
应设置为
2
,则可以使用
f2=函数(x)f1(x,a=2)
f1(4, 2)
[1] 18
f2(4)
[1] 18
library(functional)
f2 <- Curry(f1, a=2)

> f2(10)
[1] 102
library(pryr)
f2 <- partial(f1, a=2)

> f2(10)
[1] 102