我在R中有一个函数可以很好地接受标量值,但它不接受向量。
有没有办法在它上面放置一个包装器,所以这个包装器函数可以接受一个向量?
该功能本身有5个参数。
我尝试了什么
我已经尝试了我能想到的sapply
,lapply
和mapply
的每一种组合,并且至少可以说R继续提供有些模糊的错误。
答案 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
。