6つの引数を使用して次の関数を作成しました。
nDone <- function(under,strike,ttoe,vol,rf,dy) {
pnorm(((log(under/strike)+ (rf-dy+(vol^2)/2)*ttoe)/(vol*(ttoe^0.5))))
}
nDone(90,100,3,0.17,0.05,0)
# Result:
[1] 0.6174643
ここで、オブジェクトに同じ値のベクトルを作成し、そのベクトルを使用して関数を呼び出そうとしましたが、次のエラーが発生します。
d <- c(90,100,3,0.17,0.05,0)
nDone(d)
Error in under/strike : 'strike' is missing
何が間違っているのか、どのように修正するのですか?
これを試して
do.call(nDone, as.list(d))
コメントから @ joran による最初の試みで何が起こっているかの説明:
Rは、単一の引数をnDone
に渡すことを確認しています。つまり、ベクトルd
は、最初の関数の引数under
に渡されます。他のデフォルト値を指定していないため、それらが欠落しているため、エラーが発生します