两个参数的功能只给出一个参数

时间:2012-06-06 08:24:38

标签: r

假设我有一个功能

  

test< - function(s,t){
  ..
  }   这需要两个参数。

我怎样才能使它也只需要一个参数,即test(t)会返回test(t,t)?提前谢谢。

2 个答案:

答案 0 :(得分:2)

因为R使用延迟评估,您可以将第二个参数的默认值设置为等于第一个参数...

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

答案 1 :(得分:0)

为参数设置默认值是最简单的,但您也可以使用函数内部的missing函数(在if语句中)来检查是否为函数提供了参数并根据这一点做一些不同的事情。