From murdoch@dunc@n @end|ng |rom gm@||@com  Mon Sep 30 16:17:34 2019
From: murdoch@dunc@n @end|ng |rom gm@||@com (Duncan Murdoch)
Date: Mon, 30 Sep 2019 10:17:34 -0400
Subject: [Rd] Is missingness always passed on?
Message-ID: <1fc5777f-cc96-ceb7-f2e4-4475622ce77b-860@gmail.com>


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



[Rd] Is missingness always passed on?
Duncan Murdoch