5
Matlab에서 함수 f가 f (a, b, c) 인 경우, 고정 a = a1 및 c = c1로 f를 호출하는 하나의 변수 b 만있는 함수를 만들 수 있습니다. :R에서 Matlab의 @ 함수 핸들과 동일한 것은 무엇입니까?
g = @(b) f(a1, b, c1);
R에 해당하는 항목이 있습니까? 아니면 새 기능을 다시 정의해야합니까?
Matlab에서 함수 f가 f (a, b, c) 인 경우, 고정 a = a1 및 c = c1로 f를 호출하는 하나의 변수 b 만있는 함수를 만들 수 있습니다. :R에서 Matlab의 @ 함수 핸들과 동일한 것은 무엇입니까?
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의 솔루션과 중요한 차이가
Curry
를 사용
g
의 정의
b
언급하지 않는다는 것입니다 생각합니다. 따라서
f
의 인수 수가 커질 때이 접근 방식을 선호 할 수 있습니다.
g <- function(b) f(a1, b, c1)
'pryr :: partial'과'ptools','% <<%', '%>> %'및'%() %'도 있습니다. 인수의 부분 평가와 게으른 평가가 어떻게 상호 작용하는지 명확하지 않으며 각 패키지는 약간 다른 접근 방식을 취합니다. – hadley