3
我在R中有一個很好地接受標量值的函數,但它不接受一個向量。如何包裝接受標量的R函數,以便接受矢量?
有什麼辦法可以在它上面放置一個包裝器,所以這個包裝器函數可以接受一個向量?
函數本身有5個參數。
我已經試過
我試過的sapply
,lapply
和mapply
每一個組合我能想到的,和R不斷給那些有些模糊的錯誤,至少可以這樣說。
我在R中有一個很好地接受標量值的函數,但它不接受一個向量。如何包裝接受標量的R函數,以便接受矢量?
有什麼辦法可以在它上面放置一個包裝器,所以這個包裝器函數可以接受一個向量?
函數本身有5個參數。
我已經試過
我試過的sapply
,lapply
和mapply
每一個組合我能想到的,和R不斷給那些有些模糊的錯誤,至少可以這樣說。
明白了。
的原始函數調用是:
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
。
閱讀'?Vectorize'。 – Roland
@Roland謝謝,這個作品完美!如果您將此作爲答案提交,我會將其標記爲正確。 – Contango