Я просто добавлю ответ, который дал вам в чате. Если вы посмотрите, как разработчики ядра R делают это для разных аргументов, вы просто используете для этого объявление функции. Из read.table, который содержит аргумент as.is
и аргумент stringsAsFactors
, которые делают то же самое (или фактически наоборот):
function (file, -some pars-, as.is = !stringsAsFactors, -some more pars -
stringsAsFactors = default.stringsAsFactors(), -more pars - )
{
#function code using as.is
}
Дело в том, что это работает, только если вы указываете значение по умолчанию для любого из них. Довольно часто NULL является хорошим кандидатом:
myfunc <- function(x, market_initial=NULL, mkt = market_initial, ...){
if(is.null(mkt)) {
print("give me market_initial!") # instead of missing(mkt)
} else {
print(mkt)
}
}