我在 R 中有一个函数可以很好地接受标量值,但它不接受向量。
有没有办法在它上面放置一个包装器,所以这个包装器函数可以接受一个向量?
函数本身有 5 个参数。
我试过的
我已经尝试了所有我能想到的 和 的组合sapply
,lapply
并且mapply
至少可以说,R 不断给出一些晦涩难懂的错误。
我在 R 中有一个函数可以很好地接受标量值,但它不接受向量。
有没有办法在它上面放置一个包装器,所以这个包装器函数可以接受一个向量?
函数本身有 5 个参数。
我试过的
我已经尝试了所有我能想到的 和 的组合sapply
,lapply
并且mapply
至少可以说,R 不断给出一些晦涩难懂的错误。
知道了。
原来的函数调用是:
result<-MyFunc(P=34,S=100,X=100,T=1)
方法一
要使其接受向量输入,只需mapply
在函数调用前添加并将第一个左括号(
转换为逗号,
:
result<-mapply(MyFunc,P=34,S=100,X=100,T=1)
方法二
感谢@Roland,键入??Vectorize
以查找可以包装函数以使其接受向量的函数。
MyFuncOnVector <- Vectorize(MyFunc)
result <- MyFuncOnVector(P=34,S=100,X=100,T=1)
在幕后,Vectorize 正在调用mapply
.