我正在尝试扩展包的功能,因此尝试访问其中一个函数背后的整个代码。
有问题的包是 RQuantLib,我试图查看函数“DiscountCurve”中使用的整个代码
我得到的结果很简单:
function (params, tsQuotes, times = seq(0, 10, 0.1), legparams = list(dayCounter = "Thirty360",
fixFreq = "Annual", floatFreq = "Semiannual"))
{
UseMethod("DiscountCurve")
}
我已经尝试了很多在此线程中发布的解决方案,但没有成功:How can I view the source code for a function?
UseMethod("DiscountCurve") 并没有告诉我太多信息。据我了解,这是 C++ 的翻译包。 我对编码相当陌生,因此我可能没有在上面的线程中正确实现正确的解决方案。
编辑以获取有关迄今为止使用的方法的更多详细信息: 方法结果: > 方法(“折扣曲线”) 1 DiscountCurve.default*
检查方法(Class="default")时,我得到 184 个结果。由于篇幅原因我将贴出代码截图:prnt.sc/tws98x
进一步使用 getAnywhere:prnt.sc/tws9rq
最佳答案
如果你这样做:
RQuantLib:::DiscountCurve.default
您将看到泛型调用 UseMethod("DiscountCurve")
时运行的实际代码。但是,您可能会失望,因为本质上该函数是一个美化的类型检查器,它将您的参数安全地传递给另一个名为 discountCurveEngine
的未导出函数,如下所示:
RQuantLib:::discountCurveEngine
function (rparams, tslist, times, legParams)
{
.Call(`_RQuantLib_discountCurveEngine`, rparams, tslist,
times, legParams)
}
您将看到,它实际上是实际执行计算的 C++ 代码的薄包装器。它是用 Rcpp 风格的 C++ 编写的,您可以阅读源代码 here 。但是,这又会调用另一个名为 Quantlib 的 C++ 库中的函数。
根据您对 C++ 的热衷程度和熟练程度,您可能会发现这充满挑战或令人沮丧地困惑,但至少您知道在哪里可以找到源代码。
关于r - 在 Rstudio 中访问具有 "useMethod("packagefunction 的函数的完整源代码”)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63330881/