1) Обернуть функцию в список:
mapply(f, 1:2, 3, list(f2))
## [1] 10 11
2) Обычно функции, которые имеют аргументы функции, используют match.fun
, чтобы можно было передатьлибо функция, либо строка символов, содержащая ее имя. Например, mapply
сам делает это, поэтому вышеприведенная строка кода может быть в равной степени записана как: mapply("f", 1:2, 3, list(f2))
. Если бы f
было написано таким образом, то мы могли бы просто указать имя f2
в виде символьной строки, а именно "f2"
.
f <- function(a, b, func) {
func <- match.fun(func)
func(a, b)
}
mapply(f, 1:2, 3, "f2")
## [1] 10 11