5

Matlabでは、シグネチャがf(a、b、c)であるなどの関数fがある場合、変数bが1つしかない関数を作成できます。これにより、固定のa=a1およびc=c1でfが呼び出されます。

g = @(b) f(a1, b, c1);

Rに同等のものはありますか、それとも新しい関数を再定義する必要がありますか?

4

2 に答える 2

7

便利な機能もありfunctional::Curryます:

f <- function(a, b, c) {a + b + c}
f(1, 2, 3)
# [1] 6

library(functional)
g <- Curry(f, a = a1, c = c1)
g(b=2)
# [1] 6
g(2)
# [1] 6

@NPEのソリューションとの重要な違いは、gusingの定義がCurry言及されていないことだと思いますb。したがって、の引数の数が多くfなる場合は、このアプローチをお勧めします。

于 2013-03-26T12:18:42.780 に答える
5
g <- function(b) f(a1, b, c1)
于 2013-03-26T11:56:13.253 に答える