到目前为止,在编写R函数时,我将未定义的参数作为NULL值传递,然后测试它们是否为NULL即
f1 <- function (x = NULL) {
if(is.null(x))
...
}
Run Code Online (Sandbox Code Playgroud)
但是我最近发现了将未定义的参数传递为缺失的可能性
f2 <- function (x) {
if(missing(x))
...
}
Run Code Online (Sandbox Code Playgroud)
R文件说明了这一点
当前缺失只能在定义参数的函数的直接主体中使用,而不能在嵌套函数或本地调用的主体中使用.这可能在将来发生变化.
显然,这是使用缺失来确定未定义值的一个缺点是否有其他人或意识到?或者以更有用的形式表达问题"你何时使用缺失与NULL值来传递R中未定义的函数参数?为什么?"