R 代码忽略了 nargs() if 语句
R Code ignored nargs() if statement
无法弄清楚为什么 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
。
请指教
对于多个参数,我们可以使用三个点 (...
),条件 nargs
将对其进行评估
foo <- function(...) {
if (nargs() > 1){
stop("Enter 1 argument only")
}
cat("call was ", deparse(match.call()), "\n", sep = "")
}
foo("a", "b")
Error in foo("a", "b") : Enter 1 argument only
foo("a")
#call was foo("a")
无法弄清楚为什么 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
。
请指教
对于多个参数,我们可以使用三个点 (...
),条件 nargs
将对其进行评估
foo <- function(...) {
if (nargs() > 1){
stop("Enter 1 argument only")
}
cat("call was ", deparse(match.call()), "\n", sep = "")
}
foo("a", "b")
Error in foo("a", "b") : Enter 1 argument only
foo("a")
#call was foo("a")