Возможно, вы захотите взглянуть на do.call()
, который вызывает функцию с аргументами, представленными в списке.Нетрудно написать обертку вокруг этого, которая делает именно то, что вы хотите.
function1=function(a,b)a+b
function2=function(a,b,c)a+b+c
do.call("function1",list(1,2))
do.call("function2",list(1,2,3))
РЕДАКТИРОВАТЬ: Обертка будет:
applyfunction=function(fun,...)do.call(fun,list(...))
applyfunction("function1",1,2)
applyfunction("function2",1,2,3)