我有下面的代码从类 term_strc_nss 中提取一个命名的数字。它可以很好地提取 beta 向量的值并将它们传递给下一个函数。2012-12-31
但是,定义类中插槽的交易日期会发生变化。所以,我需要将交易日期作为变量传递到代码中。
BetaVector <<- unname(term.structure$opt_result$`2012-12-31`$par[c("beta0",
"beta1","beta2", "tau1")])
下面的代码使用粘贴,但是当我运行该函数时,我得到的错误似乎与“beta0”、“beta1”、“beta2”和“tau1”周围的引号有关。我尝试将 " 替换为 ' 我可以运行代码,但由于 beta 向量只是一串名称,因此未传递该值。
BetaVector <<- paste("unname(term.structure$opt_result$`",tradedate,"`$par[c("beta0",
"beta1", "beta2", "tau1")])")
我想我可以创建一种方法来提取 Beta 系数,但在创建该方法时我仍然会面临同样的问题。有没有更好的方法从类中提取命名数字?
这是 term.structure 的输出。term.structure 是一个对象 termstrc_nss 并且是一个 S3 类 引用它的正确方法是什么?
structure(list(`2012-12-31` = structure(list(par = structure(c(3.41273726187976,
-2.63342593294169, -5.34244663887461, 2.13363495349724), .Names = c("beta0",
"beta1", "beta2", "tau1")), value = 0.0088680383803467, counts = structure(c(15,
10), .Names = c("function", "gradient")), convergence = 0L, message = NULL,
outer.iterations = 2L, barrier.value = -0.000409627261066452), .Names = c("par",
"value", "counts", "convergence", "message", "outer.iterations",
"barrier.value"))), .Names = "2012-12-31")