Когда использовать пропущенные значения против NULL для передачи неопределенных аргументов функции в R и почему?

На сегодняшний день при написании R-функций я передал неопределенные аргументы как значения NULL, а затем проверил, являются ли они NULL, т.е.

f1 <- function (x = NULL) {
   if(is.null(x))
      ...
}

Однако недавно я обнаружил возможность передачи неопределенных аргументов как отсутствующих, т.е.

f2 <- function (x) {
   if(missing(x))
      ...
}

В документации R говорится, что

В настоящее время отсутствующее может использоваться только в непосредственном теле функции, которая определяет аргумент, но не в теле вложенной функции или локального вызова. Это может измениться в будущем.

Понятно, что это один из недостатков использования пропущенных для определения неопределенных значений. Есть ли другие люди или кто-нибудь знает? Или сформулировать вопрос в более полезной форме«Когда вы используете пропущенные значения против NULL для передачи неопределенных аргументов функции в R и почему?»

Ответы на вопрос(2)

Ваш ответ на вопрос