当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R match.call 参数匹配


R语言 match.call 位于 base 包(package)。

说明

match.call 返回一个调用,其中所有指定参数均按其全名指定。

用法

match.call(definition = sys.function(sys.parent()),
           call = sys.call(sys.parent()),
           expand.dots = TRUE,
           envir = parent.frame(2L))

参数

definition

函数,默认情况下调用 match.call 的函数。查看具体信息。

call

definition 指定的函数的未评估调用,由 call 生成。

expand.dots

合乎逻辑的。调用中匹配 ... 的参数是否应该包含或保留为 ... 参数?

envir

从中检索 call 中的 ... 的环境(如果有)。

细节

此帮助页面上的 ‘function’ 表示解释函数(也称为 ‘closure’):match.call 不支持原始函数(其中参数匹配通常是位置匹配)。

match.call 最常用于两种情况:

  • 记录调用以供以后重用:例如,大多数模型拟合函数将调用记录为它们返回的列表的元素call。这里默认的expand.dots = TRUE是合适的。

  • 将大部分调用传递给另一个函数,通常是 model.frame 。这里常见的习惯用法是使用expand.dots = FALSE,并删除匹配调用的...元素。另一种方法是显式选择要传递的参数,如 lm 中所做的那样。

在函数外部调用 match.call 而不指定 definition 是错误的。

call 的对象。

例子

match.call(get, call("get", "abc", i = FALSE, p = 3))
## -> get(x = "abc", pos = 3, inherits = FALSE)
fun <- function(x, lower = 0, upper = 1) {
  structure((x - lower) / (upper - lower), CALL = match.call())
}
fun(4 * atan(1), u = pi)

参考

Chambers, J. M. (1998) Programming with Data. A Guide to the S Language. Springer.

也可以看看

sys.call() 类似,但不扩展参数名称; callpmatchmatch.argmatch.fun

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Argument Matching。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。