[Rd] Is missingness always passed on?

Duncan Murdoch murdoch@dunc@n @end|ng |rom gm@||@com
Mon Sep 30 16:17:34 CEST 2019


There's a StackOverflow question 
https://stackoverflow.com/q/22024082/2554330 that references this text 
from ?missing:

"Currently missing can only be used in the immediate body of the 
function that defines the argument, not in the body of a nested function 
or a local call. This may change in the future."

Someone pointed out (in https://stackoverflow.com/a/58169498/2554330) 
that this isn't true in the examples they've tried:  missingness does 
get passed along.  This example shows it (this is slightly different 
than the SO example):

f1 <- function(x, y, z){
   if(missing(x))
     cat("f1: x is missing\n")
   if(missing(y))
     cat("f1: y is missing\n")
}

f2 <- function(x, y, z){
   if(missing(z))
     cat("f2: z is missing\n")
   f1(x, y)
}

f2()

which produces

f2: z is missing
f1: x is missing
f1: y is missing

Is the documentation out of date?  That quote appears to have been 
written in 2002.

Duncan Murdoch



More information about the R-devel mailing list