Подтвердить что ты не робот

Модифицировать функции в R, используя тела, формы и методы среды

определение функции

f <- function(x) {
   x + x*x
}

3 способа, т.е. body, formals и environment могут быть использованы для модификации

Тело

> body(f)
{
    x + x * x
}

Если мы хотим изменить тело, используя body

> body(f) <- expression({x*x*x})
> f
function (x) 
{
    x * x * x
}

см. его изменение.

формалей

Если вы хотите изменить аргументы с помощью formals до (x = 3, y = 6)

> formals(f) <- list(x = 3, y = 4)
> f
function (x = 3, y = 4) 
{
    x * x * x
}

см. его изменение.

Но если вместо этого нужно изменить аргументы на (x, y). Очевидно, что formals(f) <- list(x, y) не будет работать.

Любая помощь будет оценена.

4b9b3361

Ответ 1

Вам нужно использовать alist:

formals(f) = alist(x =, y =)

alist строит список из его необоснованных аргументов.