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


R match.fun 提取名稱指定的函數


R語言 match.fun 位於 base 包(package)。

說明

當在以函數作為參數的函數內部調用時,提取所需的函數對象,同時避免與其他類型的對象進行不需要的匹配。

用法

match.fun(FUN, descend = TRUE)

參數

FUN

作為函數匹配的項:函數、符號或字符串。查看具體信息'。

descend

邏輯性;控製是否搜索過去的非函數對象。

細節

match.fun 不適合在頂層使用,因為它將在調用者的父級中執行匹配。

如果FUN是一個函數,則返回它。如果它是一個符號(例如,用反引號括起來)或長度為 1 的字符向量,則將在調用方的父級環境中使用 get 進行查找。如果是任何其他模式,則首先嘗試將參數作為符號傳遞給調用者(使用 substitute 兩次),如果失敗,則聲明錯誤。

如果 descend = TRUEmatch.fun 將查找具有給定名稱的非函數對象;否則,如果FUN 指向非函數對象,則會生成錯誤。

這用於 applylapplyoutersweep 等基本函數。

生成與 FUN 匹配的函數或錯誤。

錯誤

descend 參數有點用詞不當,可能實際上並不需要任何東西。將來它可能會消失。

完全萬無一失是不可能的。如果 attach 是一個列表或數據幀,其中包含與函數同名的長度為 1 的字符向量,則可以使用它(盡管命名空間會有所幫助)。

例子

# Same as get("*"):
match.fun("*")
# Overwrite outer with a vector
outer <- 1:5
try(match.fun(outer, descend = FALSE)) #-> Error:  not a function
match.fun(outer) # finds it anyway
is.function(match.fun("outer")) # as well

作者

Peter Dalgaard and Robert Gentleman, based on an earlier version by Jonathan Rougier.

也可以看看

match.arg , get

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Extract a Function Specified by Name。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。