据我所知,如果我有如下功能:
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
复制相似问题