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
我剛剛做過。完美的作品。謝謝。 –