10

xtableinSweaveは素晴らしい動作をしますが、回帰ごとに1つのテーブルを実行します。rbindデータフレームをフィードすることもできるので、手動でpaste結果をデータフレームに入力してきましたが、それはあまりスケーラブルではないようです。

xtableのように機能するが、複数のlmオブジェクトで機能する、より自動化された堅牢なソリューションはありますか?論文/本に表示されるすべての表は手動で生成されていますか?フィードするデータフレームを生成する私のジャンキーコードに対するより良い解決策はありxtableますか?

    library(reshape2)

    data <- data.frame(matrix(rnorm(50), 10, 5))
    names(data) <- letters[1:5]
    l.raw <- list()
    l.raw[["a"]] <- lm(a ~ d + e, data=data)
    l.raw[["b"]] <- lm(b ~ d + e, data=data)
    l.raw[["c"]] <- lm(c ~ d + e, data=data)

    form.table.from.lm <- function(l.raw) {
    summ <- list()

    for (i in names(l.raw)) {
        temp <- coef(summary(l.raw[[i]]))
        summ[[i]] <- data.frame(param=rownames(temp), test=i, temp)
    }

    df.res <- do.call("rbind", summ)
    df.res <- transform(df.res, t.value = paste("(", signif(t.value), ")", sep=""), Estimate = signif(Estimate))
    df.res.long <- melt(df.res, id.vars=c("test", "param"))
    df.res.wide <- dcast(df.res.long, test + variable ~ param)

    temp <- subset(df.res.wide, variable %in% c("Estimate", "t.value"))
    df.res <- temp[, -2]
    df.res[, 1] <- as.vector(rbind(names(l.raw), ""))
    colnames(df.res)[1] <- "regressor"
    return(df.res)
}

データフレームを生成します:

   regressor (Intercept)          d          e
1          a    0.393996  -0.666721   0.159508
2             (0.573926) (0.422125) (0.526446)
5          b    0.611077  0.0288942   -0.70033
6              (0.32696)  (0.24048) (0.299911)
9          c   -0.101033  -0.287821    0.14581
10            (0.203193) (0.149449) (0.186383)

Rの素晴らしいプロットパッケージを考えると、googleとrseekが私から何かを隠しているように感じます。

4

6 に答える 6

5

outreg少し前に、Paul Johnsonの関数に出くわしました。

オブジェクト に直接適用outregし、複数の出力を 1 つの素敵なラテックス テーブルに結合できます。lmlm

ここに例があります.pdf

アウトレグの例

および関数のコード

outreg コード

ポール・ジョンソンによる総合ホームページ

ポール・ジョンソン

于 2010-12-03T17:02:11.107 に答える
4

あなたのコードはdcast呼び出しでエラーをスローしたので、私はあなたが提供した出力を読み取り、一致するようにcolnamesを調整しました。このコードは、LaTexプロセッサを通過した後、システム上に整形式のpdfファイルを生成します。(すでにSweaveを使用している場合は、適切なLaTeXがインストールされていると思います。)

require(Hmisc)
latex(df.res)

lme4パッケージのhelp(lmList)の例に合格すると、latex()もかなり大きくて扱いにくい4ページの表示を生成します。これは、マシンのページを広げるために調整が必要ですが、検討する価値があるかもしれません。

require(lme4)
(fm1 <- lmList(Reaction ~ Days | Subject, sleepstudy))
latex(fm1)
于 2010-12-03T17:14:23.340 に答える
1

この質問を思い出させてくれたCRANberriesが行ったもう1つのオプションを次に示します。

texregvingetteを見ると、R で非常に標準的な回帰テーブルを生成するという非常に優れた仕事をしているように見えます。これは、執筆時点で非常に活発に開発されています。

更新:私はこれらのいくつかを試してみましたが、成熟度、安定性、および機能性の点で、texregがこの分野のリーダーになったと思います。私にとって最も重要なことは、さまざまなモデルで動作し、モデルの星を構築するためのブートストラップ標準エラーなど、非常に便利なことをlme4()行うことです。それにもかかわらず。texreg の使用を強くお勧めします。積極的に整備されているようです。

于 2013-02-10T00:20:29.027 に答える
1

受け入れられた回答のoutregリンクは現在壊れています。新しいリンクは

http://pj.freefaculty.org/stat/ps706/outreg-worked.R

親フォルダーには、付随する PDF もあります。

于 2011-03-23T18:21:25.933 に答える
1

CRAN のapsrtableテーブル パッケージをチェックしてください。これは、私があなたが望むものとほぼ同じように見える American Political Science Review スタイルのテーブルを作成します。lm および glm モデルだけでなく、一部のパッケージの非線形モデルも使用できます。また、特定のレベルなどで星を生成するための一連のオプションもあります。素晴らしい vingetteがあり、LaTeX と HTML の両方のテーブルを生成し、OpenOffice/Word に追加できます。

私はこれを 2 ~ 3 年間使用しており、現在も活発に開発が続けられています。ざっと見ただけですが、outreg よりもはるかに堅牢で機能的です。

于 2011-04-21T12:23:21.060 に答える