Получить значения из списка, которые являются параметрами функции в R - PullRequest
1 голос
/ 16 апреля 2020

У меня есть список и функция, где список содержит значения для некоторых параметров функции

param <- list(
  a = 3
, b = 2
, c = 1
)

foo <- function(a, b, d) a + b + d

, и я хочу вызвать функцию со значениями из списка. Мой текущий подход -

foo_param <- param[intersect(names(param), formalArgs(foo))]
foo_param$d <- 4

do.call(foo, foo_param)

Но это кажется длинным и трудным для чтения. Есть ли более простой способ сделать это?


Да, я знаю, что могу сделать foo(param$a, param$b, d=4), но это становится трудно читать, если есть много аргументов и / или имя списка длинное и повторяется .


Да, я знаю, что могу переписать foo <- function(a, b, d, ...) и отбросить аргументы в ..., но отбрасывание аргументов - хороший способ ввести ошибки.


Ситуация возникла из-за наличия модели (определенной в виде списка) с множеством параметров и функций, принимающих только некоторые из них.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...