我正在寻找一个通用的方法来检查函数中是否定义了参数。 我想到了以下三种方法。哪一种是正确的方法?
不幸的是,第三种方法无法正常工作。在函数中,substitute()的工作方式有所不同,我无法弄清楚如何正确使用它。
file.names <- list(
cov.value <- "cov.rds",
plot.name <- "plot.pdf"
)
test1 <- function(file.names){
is.save <- !missing(file.names)
}
test2 <- function(file.names = NULL) {
is.save <- !is.null(file.names)
}
test3 <- function(file.names = NULL) {
is.save <- exists(as.character(substitute(file.names)))
}
match.call()
将告诉您是否定义了任何参数(包括正式参数 - 在您的示例中是file.names
- 以及提供给...
的参数)。 - BenBarnes