测试参数是否与R

时间:2018-03-31 18:32:25

标签: r function parameter-passing

给定一个参数列表和一个函数,我想看看我是否有一个有效的函数调用。

到目前为止我的尝试:

args_match <- function (fun, ...) {
  fun_name <- deparse(substitute(fun))
  safe_mc <- purrr::safely(match.call)
  x <- safe_mc(fun, do.call(call, list(fun_name, ...)))

  return(is.null(x$error))
}

这适用于某些功能:

> args_match(fivenum, y = 1:10)
[1] FALSE
> args_match(fivenum, x = 1:10)
[1] TRUE

但是对于带有...参数的函数失败了:

> args_match(mean, x = 1:10)
[1] TRUE
> args_match(mean, y = 1:10)
[1] TRUE
> mean(y = 1:10)
Error in mean.default(y = 1:10) : 
  argument "x" is missing, with no default

有没有办法改善这个?答案可能是否定的,因为一些R函数确实不关心它们的参数是否缺失......: - /

0 个答案:

没有答案