我使用六个参数创建了以下函数:
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 https://stackoverflow.com/users/324364/joran来自评论:
R 看到你传递一个参数给nDone
,即向量d
,它被传递给第一个函数参数,under
。由于您没有为其他值指定默认值,因此它们丢失,因此出现错误
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)