R позволяет функциям передаваться в качестве аргументов функций. Это означает, что вы можете определить apply.func
следующим образом (где f
- функция, а ...
- все остальные параметры:
apply.func <- function(f, ...)f(...)
Затем можно использовать apply.func
для указания любой функции, параметры которой имеют смысл:
apply.func(paste, 1, 2, 3)
[1] "1 2 3"
apply.func(sum, 1, 2, 3)
[1] 6
Однако учтите, что следующее может не дать ожидаемых результатов, поскольку mean
принимает вектор в качестве аргумента:
apply.func(mean, 1, 2, 3)
[1] 1
Обратите внимание, что есть также базовая функция R, называемая do.call
, которая фактически делает то же самое.