#r
Вопрос:
У меня есть длинный сценарий, в котором вверху есть раздел, посвященный предположениям и другим жестким кодам. С помощью контекста это сценарий распределения активов, в котором одним из выбранных жестких кодов является метод, с помощью которого рассчитывается импульс, для которого у меня есть различные функции. Я понимаю, что один из способов, которым я мог бы изменить код, — это просто изменить функцию, используемую в тексте кода; однако я предпочел бы оставить тело нетронутым и изменить только имя функции, которая будет использоваться в разделе предположения.
С помощью чрезвычайно простого игрушечного примера предположим, что у меня есть следующие две строки кода:
selected_function = "sum" temp_data = c(2,3,4)
Как бы я позволил любой функции, сохраненной в переменной selected_function
, Быть вызывающей функцией в temp_data
наборе данных (т. Е., Если я хочу изменить ее на «среднее значение» и т. Д.) И разрешить применение этой функции к данным.
Ответ №1:
Если у вас есть имя функции в виде строки, вы можете получить саму функцию с getFunction()
помощью get . Это вернет функцию, и затем вы сможете передать свои значения этой возвращаемой функции. Например.
selected_function = "sum" temp_data = c(2,3,4) getFunction(selected_function)(temp_data)