Я пытаюсь создать вызов функции f
, первым аргументом которой является вызов другой функции (для которой я выбрал dbinom
в качестве примера). Вызов dbinom
(переданный f
) не включает значения для всех аргументов, поскольку они должны быть завершены в f
, а завершенный вызов возвращается f
. Вот моя неудачная минимальная попытка:
f <- function(a_call) {
call_modify(a_call, x=1)
}
a_call <- call2(dbinom, size=1, prob=0.5)
y <- call2(f, a_call)
Вывод для y
:
(function(a_call) {
call_modify(a_call, x=1)
})((function (x, size, prob, log = FALSE)
.Call(C_dbinom, x, size, prob, log))(size = 1, prob = 0.5))
Этот вызов
- вызовет
a_call
безлюбые аргументы, а затем; - передают этот результат в
f
.
Если я оцениваю y
, это приводит к ошибкам, поскольку отсутствует первый аргумент dinom
.
Я похожа, но связана с конструкцией:
> call2(call2(dbinom, x=1, size=1, prob=0.5))
((function (x, size, prob, log = FALSE)
.Call(C_dbinom, x, size, prob, log))(x = 1, size = 1, prob = 0.5))()
(function (x, size, prob, log = FALSE)
Я чувствую, что с тем, что я пытаюсь здесь, есть что-то "даже не то", и лучше всего вложить модификацию вызовасделано по-другому.