Предположим, что у меня есть функция в R, которая принимает несколько аргументов, и я хотел бы свести ее к функции меньшего количества аргументов, установив некоторые из аргументов в заранее заданные значения. Я пытаюсь понять, что лучший способ сделать это в R.
Например, предположим, что у меня есть функция
f <- function(a,b,c,d){a+b+c+d}
Я хотел бы создать или найти функцию partial, которая выполнила бы следующие
partial <- function(f, ...){
#fill in code here
}
new_f <- partial(f, a=1, c= 2)
new_f
будет функцией b
и d
и вернет 1+b+2+d
В python я бы сделал
from functools import partial
def f(a,b,c,d):
return a+b+c+d
new_f = partial(f, a=1, c= 2)
Я на самом деле делаю это несколько раз, поэтому мне нужно, чтобы это было максимально эффективным. Может ли кто-нибудь указать мне на самый эффективный способ сделать это? Прямо сейчас лучшее, что я могу сделать, это
partial <- function(f, ...){
z <- list(...)
formals(f) [names(z)] <- z
f
}
Может ли кто-нибудь сообщить мне более быстрый способ или лучший способ сделать это? Это слишком медленно.