У меня есть существующая функция pass_thru(target,...)
, которая передает аргументы другим функциям (скажем, a()
, b()
и c()
) в зависимости от ее входных данных.Например:
> target <- "a"
> arg1 <- "some input"
> arg2 <- "other input"
> pass_thru(target, arg1)
# This passes ellipses arguments to function `a()`
Я хотел бы передать arg2
моей функции, но только если target == b
, потому что ни одна из других функций не может принять arg2
(то есть arg2 = NULL
не работает).Кроме того, я не могу внести изменения в pass_thru()
.
. Желаемый эффект приведен ниже, но без необходимости повторения pass_thru()
.
> if (target == "b") { pass_thru(target, arg1, arg2) }
else { pass_thru(target, arg1) }
-
.Фактический код, который я запускаю, взят из пакета caret
.verbose
- это аргумент, который нарушает функцию, когда method = "glm"
.
train(y ~ x, data,
method = TARGET,
trControl = ARG1,
verbose = ARG2)