无法弄清楚为什么R在后面忽略了nargs()
foo <- function(x=NULL) {
if (nargs() > 1){
stop("Enter 1 argument only")
}
cat("call was ", deparse(match.call()), "\n", sep = "")
}
执行foo("a","b")
时,我得到Error in foo("a", "b") : unused argument ("b")
而不是Enter 1 argument only
。
请告知
答案 0 :(得分:2)
对于多个参数,我们可以使用三个点(...
),带有nargs
的条件将对其进行评估
foo <- function(...) {
if (nargs() > 1){
stop("Enter 1 argument only")
}
cat("call was ", deparse(match.call()), "\n", sep = "")
}
foo("a", "b")
foo(“ a”,“ b”)中的错误:仅输入1个参数
foo("a")
#call was foo("a")