La combinaison de plusieurs tables de régression en une pour l'utilisation dans XTABLE avec Sweave dans R

StackOverflow https://stackoverflow.com/questions/4347634

  •  30-09-2019
  •  | 
  •  

Question

xtable dans Sweave fonctionne génial, mais fait une table par régression. Vous pouvez alimenter une trame de données, aussi, donc je suis manuellement rbinding et pasteing résultats dans des trames de données, mais cela ne semble pas très évolutive.

Y at-il une solution plus automatisée / robuste qui fonctionne comme xtable, mais sur plusieurs objets lm? Sont-ils tous les tableaux que je vois dans les papiers / livres générés manuellement? Y at-il une meilleure solution à mon code Janky qui génère une trame de données pour alimenter 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)
}

Ce qui produit la trame de données:

   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)

Compte tenu des forfaits incroyables pour R Traçage, je me sens comme google et rseek se cachent quelque chose de moi.

Était-ce utile?

La solution

Il y a un moment je suis tombé sur la fonction outreg par Paul Johnson.

Vous pouvez appliquer directement à votre outreg objet lm et combiner plusieurs sorties lm en une seule, belle table de latex.

Vous trouverez ici un exemple .pdf

OUTREG exemples

et le code de la fonction

OUTREG Code

page d'accueil générale par Paul Johnson

Paul Johnson

Autres conseils

Votre code erreur pour moi jeté à l'appel dcast, donc je lis simplement dans la sortie que vous avez offert et ajusté les colnames pour correspondre. Ce code produit un fichier pdf bien formé sur mon système après son passage à travers mon processeur LaTex. (Je suppose que vous avez une installation appropriée si vous LaTeX utilisez déjà Sweave.)

require(Hmisc)
latex(df.res)

Quand je suis passé l'exemple dans l'aide (lmList) dans le latex paquet lme4 () produisent également un affichage de 4 pages assez grand et unweildy qui aurait besoin des ajustements pour élargir la page sur ma machine, mais peut également être utile de l'examen.

require(lme4)
(fm1 <- lmList(Reaction ~ Days | Subject, sleepstudy))
latex(fm1)

Le lien OUTREG dans la réponse acceptée est cassée maintenant. Le nouveau lien est

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

Il y a aussi un PDF qui accompagne dans le dossier parent.

Consultez le paquet de table apsrtable CRAN qui crée tables de style american Political science Review qui ressemblent à peu près comme ce que je pense que vous voulez. Il faut des modèles de lm et GLM ainsi certains modèles non-linéaires de certains paquets. Il a également une longue série d'options pour générer étoiles à des niveaux particuliers et tels. Il y a une belle vingette et il génère à la fois HTML et LaTeX tables qui peuvent ensuite être ajoutés à OpenOffice / Word.

Je l'ai utilisé pendant 2-3 ans et il continue d'être en cours de développement. Je l'ai juste regardé rapidement mais il semble beaucoup plus solide / featureful que OUTREG.

Voici une plus d'options que j'ai vu passer Cranberries qui m'a rappelé cette question:

texreg - En regardant le vingette , il semble faire un travail vraiment agréable de générer des tables de régression assez standard en R et qui est en cours de développement très actif au moment de la rédaction.

Mise à jour: Je joue autour avec quelques de ces derniers et je pense qu'au fil du temps, texreg est devenu le leader de leader dans cet espace en termes de celui-ci la maturité, la stabilité et featurefulness. Le plus important pour moi, il travaille avec une variété de modèles et fait des choses merveilleusement pratiques comme bootstrap erreurs standard pour construire des étoiles pour les modèles de lme4() - quelque chose que le paquet lui-même fait un peu difficile à obtenir (pour de bonnes raisons), mais que les examinateurs et revues souvent demande néanmoins. Je recommande fortement d'utiliser texreg. Il semble être activement maintenu.

Le paquet Stargazer serait une autre option pour HTML, LaTeX ou tables ASCII , cote à cote. Voir aussi mon réponse Tableau de multiples modèles lm () en utilisant apsrtable dans Rmarkdown qui comprend une capture d'écran.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top