R:使用exists()查找带有'...'参数的函数的变量

Aff*_*eng 6 r

我想为函数提供一个可选变量,让函数检查是否提供了这个参数,并让它执行相应的计算集.我以为我可以使用'...'运算符.

我能想到的最简单的例子(遗憾地失败了)是这样的:

monkeyfun = function(...){

     if (exists("monkey")){
       return('monkey found')
     } else {
       return('monkey not found')
     }

  }
Run Code Online (Sandbox Code Playgroud)

现在monkeyfun(monkey=0)以及monkeyfun()两者都回归"monkey not found".

作为一个完整性检查,定义monkey = 1函数外部的工作和返回"monkey found".

关于'...'论证的文档并没有真正帮助我理解这个问题,我无法找到这个问题的公式,在这里得到匹配的结果(我明白这个问题是基本的,很可能在某处讨论过)...

我真的很感激这方面的一些帮助.

Jos*_*ich 5

我会用hasArg:

monkeyfun <- function(...) {
  if (hasArg("monkey")) {
    return('monkey found')
  } else {
    return('monkey not found')
  }
}
monkeyfun()
# [1] "monkey not found"
monkeyfun(monkey=0)
# [1] "monkey found"
Run Code Online (Sandbox Code Playgroud)