如何包装一个接受标量的R函数,以便它接受一个向量?

时间:2013-08-24 14:49:27

标签: r

我在R中有一个函数可以很好地接受标量值,但它不接受向量。

有没有办法在它上面放置一个包装器,所以这个包装器函数可以接受一个向量?

该功能本身有5个参数。

我尝试了什么

我已经尝试了我能想到的sapplylapplymapply的每一种组合,并且至少可以说R继续提供有些模糊的错误。

1 个答案:

答案 0 :(得分:3)

知道了。

原始函数调用是:

result<-MyFunc(P=34,S=100,X=100,T=1)

方法1

要使其接受矢量输入,只需在函数调用前添加mapply,然后将第一个左括号(转换为逗号,

result<-mapply(MyFunc,P=34,S=100,X=100,T=1)

方法2

感谢@Roland,输入??Vectorize以找到一个可以包装函数以使其接受向量的函数。

MyFuncOnVector <- Vectorize(MyFunc)
result <- MyFuncOnVector(P=34,S=100,X=100,T=1)

在幕后,Vectorize正在调用mapply