Попробуйте эту альтернативу, когда вы передаете функции непосредственно вашей функции
bb <- function(d){
if (!is.list(d)) d <- list(d)
sapply(d, function(x) x(1))
}
bb(d = list(dnorm, dcauchy))
bb(d = dnorm)
Функция c()
предназначена для объединения векторов, это не волшебная функция "массива" или что-то еще. Если у вас есть коллекции простых атомарных типов, вы можете объединить их с помощью c()
, но для более сложных объектов, таких как функции, вам нужно собирать их в список, а не в вектор.