【发布时间】:2021-12-24 08:34:52
【问题描述】:
我有一个数据框:
df <- structure(list(LAST = c(3.4, 2.52, 1.82, 1.16, 0.69, 0.36, 4,
3.21, 2.54, 1.93), CURRENTPRICE = c(464.16, 464.16, 464.16, 464.16,
464.16, 464.16, 464.16, 464.16, 464.16, 464.16), STRIKEPRICE = c(461,
462, 463, 464, 465, 466, 461, 462, 463, 464), YEARSTOEXPIRATION = c(0.00273972602739726,
0.00273972602739726, 0.00273972602739726, 0.00273972602739726,
0.00273972602739726, 0.00273972602739726, 0.010958904109589,
0.010958904109589, 0.010958904109589, 0.010958904109589)), row.names = c(NA,
-10L), class = c("data.table", "data.frame"))
我正在尝试创建一个新列,使用每行的数据并使用 RQuantLib 包中的 AmericanOptionImpliedVolatility 函数计算每行的隐含波动率:
df$IMPLIEDVOLATILITY <- AmericanOptionImpliedVolatility(type="call", value=df$LAST, underlying=df$CURRENTPRICE, strike=df$STRIKEPRICE, dividendYield=0.00, riskFreeRate=.03, maturity=df$YEARSTOEXPIRATION, volatility=0.2)
我知道代码是错误的,因此我收到一条错误消息:
“americanOptionImpliedVolatilityEngine 中的错误(类型、值、基础,:期望单个值:[extent=10]。”
如何正确使用“AmericanOptionImpliedVolatility”函数并将行值作为变量来创建具有该结果值的新列?
【问题讨论】:
标签: r dataframe dplyr apply purrr