据我所知,如果我有如下功能:
hello1<- function(pillow){
if (missing(pillow)){
stop("You need to enter pillow")
}
pillow
}
hello1()
停止并返回我想要的消息:
hello2<- function(pillow){
if (is.null(pillow)){
stop("You need to enter pillow")
}
pillow
}
hello2()
停止并返回以下消息:Error in hello2() : argument "pillow" is missing, with no default
hello3<- function(pillow=NULL){
if (is.null(pillow)){
stop("You need to enter pillow")
}
pillow
}
hello3()
停止并返回我想要的消息:
hello4<- function(pillow=NULL){
if (missing(pillow)){
stop("You need to enter pillow")
}
pillow
}
hello4()
停止并返回我想要的消息:
总之,当参数设置为missing()
和is.null()
时,我可以使用NULL
获得想要的消息,但是,当参数设置为空时,我可以得到只使用missing()
而不是is.null()
需要的消息。尽管如此,我想知道在论点中分配NULL
的利弊是什么,而不是分配NULL
。
发布于 2015-07-13 16:20:45
使用missing
的最大优点是,您在测试的内容上是显式的(是否给出了参数?)。默认值NULL
不太明确,因为NULL可能是某些函数的正确值。
特定情况下,参数由另一个函数计算,在某些情况下,它将值计算为NULL。
https://stackoverflow.com/questions/31388312
复制相似问题