我在R工作,需要傳遞參數,以便他們可以調用原有內的另一個功能時,可作爲自變量的函數。在下面的示例中,您可以看到每次調用primaryFunc()時都有興趣調用interiorFunc(),但第一個參數的值取決於第二個參數的存在。如果我聲明'parameter 2',那麼我需要一個不同的參數集,而不是在函數調用中聲明'parameter 2'。下面是內部函數的定義:參數R中時,通過內部函數的參數都依賴於可選參數
interiorFunc(data, resp, param1, param2)
{
if(missing(param2))
{
print(paste("Do analysis without parameter 2 on dataset of size",nrow(data),"with response",resp)
}else{
print(paste("Do analysis with parameter 2 on dataset of size",nrow(data),"with response",resp))
}
}
,這裏是調用它的功能:
primaryFunc <- function(dataset, ...)
{
if(parameter 2 has been declared in the call to primaryFunc)
{
results <- interiorFunc(dataset, ...)
}else{
modifedData <- sample(dataset, 2*dataset, replace = TRUE)
results <- interiorFunc(modifiedData, ...)
}
return(results)
}
函數調用要麼是:
interiorFuncResults <- primaryFunc(dataset, response, parameter1)
或
interiorFuncResults <- primaryFunc(dataset, response, parameter1, parameter2)
,所以我需要去。termine在調用內部函數,如果它是「參數2」值已經被通過下面是interiorFunc的定義()使這個例子重複性:
謝謝您的幫助。
的問題,因爲它代表,你可以簡單地考多少額外的參數傳遞,如'長度(列表(...))' – baptiste
感謝您的答覆。我想我應該讓我的可重現的例子更現實。 innerFunc()實際上需要許多參數(大約10),大約6個是可選的,但只有一個參數具有參數2在這個例子中的作用,所有其他參數可以在不影響primaryFunc()的情況下被指定。 – tjnel
我認爲這將是:) – baptiste