Message-ID: <1fc5777f-cc96-ceb7-f2e4-4475622ce77b-860@gmail.com>
Date: 2019-09-30T14:17:34Z
From: Duncan Murdoch
Subject: Is missingness always passed on?
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