Я хотел бы определить произвольную функцию произвольного числа переменных, например, для 2-х переменных:Применение нескольких переменных функции к вектору R
func2 <- function(time, temp) time + temp
Я хотел бы сохранить переменную имена, которые имеют значение в задаче (время и температура выше).
Если у меня есть вектор значений для этих переменных, например, в 2-м случае, c (10, 121), я бы хотел применить мою функцию (func2 здесь) и получить результат. Концептуально, что-то подобное,
func2(c(10,121))
становится
func2(10,121)
Есть простой способ для достижения этой цели, для произвольного числа переменных?
Благодаря
Вы исходите из такого языка, как python, который поддерживает splatting? Действительно ли это проблема, расщепляющая вектор при вызове функции? Технически вы можете сделать это с помощью таких вещей, как 'do.call', но это становится довольно грязным в R. Я, вероятно, не рекомендовал бы его, если это абсолютно необходимо. – MrFlick
Можете ли вы указать его как именованный вектор? Например, 'func2 (c (time = 10, temp = 121))'. –
То, что я пытаюсь воспроизвести, - это то, что используется в Mathematica много. В Mathematica выражение, подобное c (10,121), будет иметь «Head», называемый List. Эта голова может быть заменена именем функции с помощью «Применить». (на любом уровне в многомерном массиве). Ответ ниже полезен, но моя конечная цель была более сложной. Я хочу создать многомерную версию «внешнего». Подобно my.outer (func, a_vec, b_vec, c_vec, ..), где функция переменных «a», «b», «c» и т. Д. Будет применена к векторам из внешнего произведения векторов значений для каждой переменной. – SteveK