我在 R 中工作,需要将参数传递给函数,以便在调用原始函数中的另一个函数时可以将它们用作参数。在下面的示例中,您可以看到我对每次调用 primaryFunc() 时调用 internalFunc() 感兴趣,但第一个参数的值取决于第二个参数的存在。如果我声明“参数 2”,那么我想要一组不同的参数,而不是在函数调用中不声明“参数 2”。下面是内部函数的定义:
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)
所以我需要在调用内部函数之前确定它的“parameter2”值是否已被传入。这是一个内部函数的定义(),以使这个例子可重现:
谢谢您的帮助。