2
我有一个功能很多参数。我需要抛出一个错误,如果他们的任何缺失:R检查是否有任何缺失的参数
这是可以做到像这样:
testFunction = function(a,b,c,d,e,f,g,....){
if(missing(a)) stop("a is required")
if(missing(b)) stop("b is required")
if(missing(c)) stop("c is required")
if(missing(d)) stop("d is required")
if(missing(e)) stop("e is required")
if(missing(f)) stop("f is required")
if(missing(g)) stop("g is required")
}
但我的实际情况包含很多的参数比上述简单的例子,正因为如此,我会使用一个循环而执行等效检查,是这样的:(不工作)
testFunction = function(a,b,c,d,e,f,g,...){
args = as.list(environment())
for(n in names(args)){
if(missing(as.name(n))) stop(sprintf("%s is required",n))
}
}
以上抛出一个错误:
Error in missing(as.name(n)) : invalid use of 'missing'
如何检查参数名称的字符表示是否缺少参数?
当涉及到省略号时会影响吗? –
@NicholasHamilton那么,你可以测试它,让我知道你是否想要不同的行为。 – MrFlick
我刚刚做过。完美的作品。谢谢。 –