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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。