R匹配函数match.fun

R允许将函数作为参数,但如果有一个与函数同名的对象,如下所示:

> print<-c(1,2,3) #这里print是一个列表和print函数重名
> test<-function(o,fun){
+ fun(o)
+ }
> test(print,fun=print)
Error in test(print, fun = print) : 没有"fun"这个函数

出错,没有找到fun这个函数,显然这里没有将print函数赋值给fun,而将print向量赋值给了fun.为避免发生此错误。在函数体内使用match.fun().如下所示:

> test<-function(o,fun){

+ fun<-match.fun(fun)
+ fun(o)
+ }
> test(print,fun=print)
[1] 1 2 3

print函数打印了print向量.match,fun()函数查找函数名与"print"匹配的函数.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值