私はこの関数を作成:渡す引数
nDone<- function (under,strike,ttoe,vol,rf,dy) {
return(pnorm(((log(under/strike) + (rf-dy+(vol^2)/2)*ttoe)/(vol*(ttoe^0.5)))))
}
nDone(90,100,3,0.17,0.05,0)
[1] 0.6174643
はこれまでのところ、それは罰金だと動作します。今は、関数を行列の各行に適用する必要があります。
b<- c(90,95,100,100,3,2,0.17,0.18,0.05,0.05,0,0)
dim(b) <- c(2,6)
います:
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 90 100 3 0.17 0.05 0
[2,] 95 100 2 0.18 0.05 0
をだから今、私は関数に、各行の要素を通過したいです。私も試してみた
Error in under/strike : 'strike' is missing
:
lapply(b,nDone)
私は次のエラーを取得する:
Error in under/strike : 'strike' is missing
apply(b,1,nDone)
そして、次のエラーを取得する:私は適用使ってみました
私が望むのは、この関数の複数の結果です。私はここで間違って何をしていますか?
から
mdply
を使用することができ、ことを言及する価値があります最後](http://stackoverflow.com/questions/9235781/passing-arguments-to-a-function-in-a-single-vector)質問。 – joranこんにちはジョラン、私はそれが同じように見えると私は確かに誰の時間を無駄にしようとしていない。この質問では、行列の各行を関数に渡そうとしています。繰り返していただきありがとうございます。 – user1181337
はい。前の質問に対する@ジョランの答え(実際にはコメント)も同様に答えるために働くはずです。彼はあなたの苦闘/解釈のために少し余裕を残しました。私はあなたが彼のコメントを見て、あなたがそれで何をするべきかを理解できるかどうかを見てみることをお勧めします。もしあなたが戻って来て、そこに明確化を求めるなら... –