r - 在 Rstudio 中访问具有 "useMethod("packagefunction 的函数的完整源代码”)?

标签 r function

我正在尝试扩展包的功能,因此尝试访问其中一个函数背后的整个代码。

有问题的包是 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/

相关文章:

R根据时间差分组

arrays - R将data.frame转换为json

c++ - GMP(GNU 多精度): "mpz_mod" function error

javascript - 如何在 jQuery 对象上创建 catch all 函数?

c++ - 无限脉冲响应 (IIR) 函数

mysql - 按复杂值对 mysql 表进行排序

R arules - 匹配规则的交易子集

r - 绘制李克特量表问题并将它们分组

r - 如何使用 foreach 和 doMC 包为随机模拟设置种子?

javascript - 第一类使用的这两个函数有什么区别? (javascript)