2012-06-06 7 views
1

Предположим, у меня есть функцияФункция двух аргументов дается только один аргумент

< тест - функции (s, т) {
..
} , который требует два аргумента.

Как я могу сделать это так, что он также принимает один единственный аргумент, т.е. test(t) вернется test(t,t)? Заранее спасибо.

ответ

2

Поскольку R использует ленивые вычисления вы можете установить значение по умолчанию второго аргумента, равного первому аргумент ...

foo <- function(s,t=s) { 
    s+t 
} 
> foo(4) 
[1] 8 
> foo(4,5) 
[1] 9 
+0

Именно то, что я искал, спасибо! –

0

Установка значения по умолчанию для аргумента является самым простым, но вы также можете использовать функция missing внутри функции (в операторе if), чтобы проверить, был ли аргумент предоставлен функции и что-то другое на основе этого.

Смежные вопросы