rsg*_*mon 24 arguments r function parameter-passing
我创建了以下功能:
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
Run Code Online (Sandbox Code Playgroud)
然后我用以下函数调用该函数:
d <- c(90,100,3,0.17,0.05,0)
nDone(d)
Error in under/strike : 'strike' is missing
Run Code Online (Sandbox Code Playgroud)
结果
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
Run Code Online (Sandbox Code Playgroud)
好到目前为止都很好.
现在我在对象中创建一个具有相同值的向量:
d <- c(90,100,3,0.17,0.05,0)
nDone(d)
Error in under/strike : 'strike' is missing
Run Code Online (Sandbox Code Playgroud)
我尝试使用该对象调用该函数.
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
Run Code Online (Sandbox Code Playgroud)
我收到以下错误.
d <- c(90,100,3,0.17,0.05,0)
nDone(d)
Error in under/strike : 'strike' is missing
Run Code Online (Sandbox Code Playgroud)
我做错了什么以及如何解决?
谢谢
RSG
bap*_*ste 32
试试这个
do.call(nDone, as.list(d))
Run Code Online (Sandbox Code Playgroud)