具有可变args的R函数取决于是否存在其他args

时间:2016-11-10 09:06:56

标签: r variadic-functions

我在R中偶然发现了两次或三次varargs问题,但似乎我遇到的问题比我想象的要复杂一些。这是

我有一个函数,它对变量做了一些事情,但是我想引入另一个变量,一种标志,它选择函数的工作方式以及函数本身需要哪些参数:即数字和输入类型取决于(标志)输入。

好的,一个例子更好:

-(void)changeImage:(id)sender {UIImagePickerController *picker=[[UIImagePickerController alloc]init]; 
    picker.delegate=self; 
    picker.allowsEditing=YES;
    picker.sourceType=UIImagePickerControllerSourceTypeCamera; 
    [self presentViewController:picker animated:YES completion:NULL];     
} 

这很好用。 关键是在这个例子中你需要每次都指定x和y。相反,如果flag = 0,我想要一个函数只有x 如果flag = 1而只有y 。 (在这个愚蠢的例子中,它们基本上是两个不同的函数,但在我的实际情况中,我有其他(常见的)参数,我做了一些计算,这两个函数都需要这些函数。)

我知道可以为未使用的参数指定任何值,结果不会改变,但是我想要一个可以被用户直接读取的函数,并且需要指定一个赢得&的参数是很麻烦的。 #39;由函数

使用

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

以下内容如何?

example = function(x,flag=1,y){
  if (flag && !missing(x)) return(x)
  else if(!flag && !missing(y)) return(y)
}

这将检查标志是0还是非零加上它将检查是否缺少参数。你可能想要处理这两种情况都不正确的情况,因为在这种情况下这个函数将返回NULL。