【问题标题】:Seeking well-commented versions of mgcv source code [closed]寻求mgcv源代码的注释良好的版本[关闭]
【发布时间】:2023-03-04 08:12:05
【问题描述】:

为交叉发帖道歉(在 R-help 上),但 SO 获得了更多的意见,我希望知道的人可以在这里找到问题。

我正在寻找包含 mgcv 的各种函数的注释良好的版本,以便我可以为我正在处理的项目修改其中的一部分。特别是我在寻找

  • testStat
  • summary.gam
  • 刘2
  • simf

我知道我可以通过输入 mgcv:::whatever 找到这些。但是有很多嵌套的if 语句,很难理解。代码中的注释准确描述了每一步发生的情况,这将使我的生活变得更轻松。

在哪里可以找到更详细的代码版本?这样的事情存在吗?

编辑: 回复被删评论:不知道能在github上找到,之前没用过。 FFR,在这里:https://github.com/cran/mgcv

【问题讨论】:

    标签: r open-source mgcv


    【解决方案1】:

    您是否在 GitHub 上搜索过任何源代码?那里有注释代码。我在the mgcv.r file 中找到了testStat


    以下是一些有助于我理解复杂代码的建议:

    (1) 将源代码写入一个文本文件,这样您就可以将其分隔开、移动一些东西等。

    > sink("testStat.txt")
    > mgcv:::testStat
    > sink()
    

    (2) 将它的body 分解成一个部件列表

    > x <- as.list(body(mgcv:::testStat))
    > x
    [[1]]
    `{`
    
    [[2]]
    qrx <- qr(X, tol = 0)
    
     ...
    
    [[19]]
    if (nu > 0) {
        if (k1 == 1) 
            rank1 <- val <- 1
        else {
            val <- rep(1, k1)
            rp <- nu + 1
            val[k] <- (rp + sqrt(rp * (2 - rp)))/2
            val[k1] <- (rp - val[k])
        }
        if (res.df <= 0) 
            pval <- liu2(d, val)
        else pval <- simf(d, val, res.df)
    } else {
        pval <- 2
    }
    
     ...
    
    [[21]]
    list(stat = d, pval = min(1, pval), rank = rank)
    

    【讨论】:

    • 请注意,您无需搜索github。您可以简单地使用 CRAN 的 package source
    • @mnel,有评论吗?这是我的一些 lib 路径文件中的代码吗?
    • github/cran 存储库正在读取这些文件(作为非官方镜像)。只有在提交给 cran 的代码被注释时,代码才会被注释(这不是 cran 要求)
    猜你喜欢
    • 2011-05-18
    • 1970-01-01
    • 2013-06-18
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多