-2

相互投稿 (R ヘルプで) をお詫びしますが、SO はより多くのビューを取得します。知っている人がここで質問を見つけてくれることを願っています。

私が取り組んでいるプロジェクトの一部を変更できるように、mgcv を構成するさまざまな機能のよくコメントされたバージョンを探しています。特に探しているのは

  • testStat
  • 概要.gam
  • リュー2
  • シムフ

mgcv:::whatever と入力すると、これらを見つけることができます。しかし、ネストされたステートメントがたくさんあるため、理解するのifが難しくなります。各ステップで何が起こっているかを正確に説明するコード内のコメントは、私の人生をずっと楽にしてくれます。

コードのより詳細なバージョンはどこにありますか? そのようなものは存在しますか?

編集: 削除されたコメントへの対応: 以前に使用したことがないため、github で見つかるとは知りませんでした。FFR、ここにあります: https://github.com/cran/mgcv

4

1 に答える 1

5

GitHub でソース コードを検索しましたか? そこにコメント付きのコードがあります。mgcv.rファイルで見つけ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)
于 2014-05-03T02:52:54.263 に答える