當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。