2013-08-24 48 views
3

我在R中有一個很好地接受標量值的函數,但它不接受一個向量。如何包裝接受標量的R函數,以便接受矢量?

有什麼辦法可以在它上面放置一個包裝器,所以這個包裝器函數可以接受一個向量?

函數本身有5個參數。

我已經試過

我試過的sapplylapplymapply每一個組合我能想到的,和R不斷給那些有些模糊的錯誤,至少可以這樣說。

+4

閱讀'?Vectorize'。 – Roland

+0

@Roland謝謝,這個作品完美!如果您將此作爲答案提交,我會將其標記爲正確。 – Contango

回答

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

相關問題