R 包括xtable中的模型规格(方差分析(…)

R 包括xtable中的模型规格(方差分析(…),r,xtable,R,Xtable,我有一组对数线性模型,为了我们的目的,这些模型将只是glm()对象,称为mx,my,mz。我想得到一个格式良好的异常分析的xtable,所以我自然会想执行xtable(方差分析(mx,my,mz,test=“Chisq”) 然而,xtable的常规输出不包括型号规格。我想为我正在运行的所有ANOVA测试包含这些参数,因此,如果没有我缺少的参数,我可能只需要修改我自己的解决方案。但是查看帮助页面,似乎没有一种简单的方法可以包含模型规范 有什么想法吗?替代品 如果在2.9.1中使用XTTable 1

我有一组对数线性模型,为了我们的目的,这些模型将只是
glm()
对象,称为
mx,my,mz
。我想得到一个格式良好的异常分析的
xtable
,所以我自然会想执行
xtable(方差分析(mx,my,mz,test=“Chisq”)

然而,
xtable
的常规输出不包括型号规格。我想为我正在运行的所有ANOVA测试包含这些参数,因此,如果没有我缺少的参数,我可能只需要修改我自己的解决方案。但是查看帮助页面,似乎没有一种简单的方法可以包含模型规范

有什么想法吗?替代品


如果在2.9.1中使用XTTable 1.5-5实现了这一点,那么它会有所帮助。

如果
a
是方差分析表对象,那么
attr(a,“标题”)
确实包含您要查找的信息,但我无法找到一种提取它的好方法。因此,我查找了
anova.glm
的代码,它将我指向
anova.lmlist
的代码,以了解他们如何将这些信息放入标题中。这激发了以下解决方案的灵感:

# 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)

结果不太漂亮,但你的公式也不漂亮。在这个特殊的例子中,我会使用
(性+出席+出生+政治)^3
-理解要点,而且要短得多

我认为您想要得到LaTeX表,但您可以很容易地得到带有模型公式的HTML表

# if we presuppose that <b>a</b> is object from @Aniko's reply
> class(a)
[1] "anova"      "data.frame"
# after doing a bit of that sapply magic you get
> a
Analysis of Deviance Table

Model 1: y ~ x
Model 2: y ~ x + I(x^2)
               Resid. Df Resid. Dev Df Deviance
y ~ x                  8     15.503            
y ~ x + I(x^2)         7     12.060  1   3.4428

它不像LaTeX表那么漂亮,但它有模型公式…

这是一个很好的开始,但它在某种程度上打破了交互层次结构。例如,如果我有[code>[[3]][1]“freq~sex+出席+出生+政治+性别:出席+性别:出生+”[2]“性别:政治+出席:出生+出席:政治+出生:政治+”[3]“性别:出席:出生+性别:出席:政治+性别:出生:政治+”[4]“出席:出生:政治”它不起作用!虽然如此,但解决方案似乎包括将长格式模型放在表的前面,并对它们进行编号,然后只参考实际表中的数字。我已经用您的长公式添加了一个示例。
# if we presuppose that <b>a</b> is object from @Aniko's reply
> class(a)
[1] "anova"      "data.frame"
# after doing a bit of that sapply magic you get
> a
Analysis of Deviance Table

Model 1: y ~ x
Model 2: y ~ x + I(x^2)
               Resid. Df Resid. Dev Df Deviance
y ~ x                  8     15.503            
y ~ x + I(x^2)         7     12.060  1   3.4428
# load xtable library
library(xtable)
# sink output to html file
sink("~/anova_specs.html")  # suppose you're running R on Linux "~/"
print(xtable(a), type = "html")
sink()