Wenn a
das Anova-Tabellenobjekt ist, dann enthält attr(a,"heading")
die Information, die Sie suchen, aber ich konnte keine gute Methode finden, es zu extrahieren. Also habe ich den Code anova.glm
nachgeschlagen, der mich an den Code anova.lmlist
geleitet hat, um herauszufinden, wie sie diese Informationen in die Überschrift schreiben. Dies zu folgenden Lösung inspiriert:
# fake data
x <- 1:10
y <- x+ rnorm(10)
# two models
m1 <- glm(y~x)
m2 <- glm(y~x+I(x^2))
a <- anova(m1, m2) # anova object to be printed
# get model formulas
flas <- sapply(list(m1,m2), function(x)paste(deparse(x$formula)))
rownames(a) <- flas # add formulas as rownames
# convert to latex
xtable(a)
Edit für lange Formeln bieten:
Wenn Sie lange Formeln, zwei Änderungen erforderlich sind: zuerst müssen wir sicherstellen, dass deparse
es nicht in Linien bricht, und dann müssen wir Latex machen, um die Formel in die Tabelle zu legen. Der erste kann erreicht werden, indem das Argument cutoff.width
von deparse verwendet wird, und der zweite unter Verwendung eines p{width}
Spaltentyps in Latex. Zum Beispiel:
# add long formula
m2$formula <- freq ~ sex + attend + birth + politics + sex:attend + sex:birth +
sex:politics + attend:birth + attend:politics + birth:politics +
sex:attend:birth + sex:attend:politics + sex:birth:politics +
attend:birth:politics
a <- anova(m1, m2)
# use a large width
flas <- sapply(list(m1,m2),
function(x)paste(deparse(x$formula, cutoff.width=500)))
rownames(a) <- flas # add formulas as rownames
# convert to latex with first column wrapped in a 5cm wide parbox
xtable(a, align="p{5cm}rrrr")
Das Ergebnis ist nicht allzu schön, aber Ihre Formel ist auch nicht schön. In diesem speziellen Fall würde ich (sex + attend + birth + politics)^3
verwenden - bekommt den Punkt über und ist viel kürzer.
Dies ist ein guter Start, aber es ist eine Art bricht die Interaktionshierarchie weiter auf. Zum Beispiel, wenn ich '[[3]] [1]" freq ~ sex + teilnehmen + geburt + politik + geschlecht: besuchen + geschlecht: geburt + " [2]" sex: politik + teilnehmen: geburt + besuchen : politik + geburt: politik + " [3]" sex: besuchen: geburt + sex: besuchen: politik + geschlecht: geburt: politik + " [4]" teilnehmen: geburt: politik "' Es tut es nicht Arbeit! Aber so nah - scheint die Lösung darin zu bestehen, die Long-Form-Modelle in der Tabelle aufzustellen und sie zu nummerieren und sich dann nur auf die Nummer in der tatsächlichen Tabelle zu beziehen. – HamiltonUlmer
Ich habe ein Beispiel mit Ihrer langen Formel hinzugefügt. – Aniko