R语言
match.fun
位于 base
包(package)。 说明
当在以函数作为参数的函数内部调用时,提取所需的函数对象,同时避免与其他类型的对象进行不需要的匹配。
用法
match.fun(FUN, descend = TRUE)
参数
FUN |
作为函数匹配的项:函数、符号或字符串。查看具体信息'。 |
descend |
逻辑性;控制是否搜索过去的非函数对象。 |
细节
match.fun
不适合在顶层使用,因为它将在调用者的父级中执行匹配。
如果FUN
是一个函数,则返回它。如果它是一个符号(例如,用反引号括起来)或长度为 1 的字符向量,则将在调用方的父级环境中使用 get
进行查找。如果是任何其他模式,则首先尝试将参数作为符号传递给调用者(使用 substitute
两次),如果失败,则声明错误。
如果 descend = TRUE
, match.fun
将查找具有给定名称的非函数对象;否则,如果FUN
指向非函数对象,则会生成错误。
这用于 apply
、 lapply
、 outer
和 sweep
等基本函数。
值
生成与 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.
也可以看看
相关用法
- R match.arg 使用部分匹配的参数验证
- R match.call 参数匹配
- R match 价值匹配
- R matrix 矩阵
- R matmult 矩阵乘法
- R mat.or.vec 创建矩阵或向量
- R make.unique 使字符串唯一
- R maxCol 求矩阵中的最大位置
- R mapply 将函数应用于多个列表或向量参数
- R marginSums 计算表格边距
- R make.names 命名语法上有效的名称
- R mtfrm 匹配辅助函数
- R merge 合并两个 DataFrame
- R missing 正式论证有价值吗?
- R mode 对象的(存储)模式
- R message 诊断信息
- R mean 算术平均值
- R memlimits 查询和设置堆大小限制
- R memCompress 内存中压缩和解压缩
- R memory.profile 分析 Cons 单元的使用情况
- R file.path 构造文件路径
- R grep 模式匹配和替换
- R getwd 获取或设置工作目录
- R vector 向量 - 创建、强制等
- R lapply 对列表或向量应用函数
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Extract a Function Specified by Name。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。