Matlabでは、シグネチャがf(a、b、c)であるなどの関数fがある場合、変数bが1つしかない関数を作成できます。これにより、固定のa=a1およびc=c1でfが呼び出されます。
g = @(b) f(a1, b, c1);
Rに同等のものはありますか、それとも新しい関数を再定義する必要がありますか?
Matlabでは、シグネチャがf(a、b、c)であるなどの関数fがある場合、変数bが1つしかない関数を作成できます。これにより、固定のa=a1およびc=c1でfが呼び出されます。
g = @(b) f(a1, b, c1);
Rに同等のものはありますか、それとも新しい関数を再定義する必要がありますか?
便利な機能もあり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のソリューションとの重要な違いは、g
usingの定義がCurry
言及されていないことだと思いますb
。したがって、の引数の数が多くf
なる場合は、このアプローチをお勧めします。
g <- function(b) f(a1, b, c1)