Extract Residual Deviance from anova (glm) in R

天涯浪子 提交于 2020-01-04 03:32:14

问题


I fitted a glm model in R and took the anova table. I need to extract the "Residual Deviance" column. But it generates an error. Here are the codes:

Creating data:

counts <- c(18,17,15,20,10,20,25,13,12)
outcome <- gl(3,1,9)
treatment <- gl(3,3)

Fitting GLM:

glm.D93 <- glm(counts ~ outcome + treatment, family = quasipoisson(link = "log"))

Anova table:

av.1=anova(glm.D93)
av.1
Analysis of Deviance Table

Model: quasipoisson, link: log

Response: counts

Terms added sequentially (first to last)


          Df Deviance Resid. Df Resid. Dev
NULL                          8    10.5814
outcome    2   5.4523         6     5.1291
treatment  2   0.0000         4     5.1291

Now I need to extract "Resid. Dev" column. So I tried str

> str(av.1)
Classes ‘anova’ and 'data.frame':       3 obs. of  4 variables:
 $ Df        : int  NA 2 2
 $ Deviance  : num  NA 5.45 0
 $ Resid. Df : int  8 6 4
 $ Resid. Dev: num  10.58 5.13 5.13
 - attr(*, "heading")= chr "Analysis of Deviance Table\n\nModel: quasipoisson, link: log\n\nResponse: counts\n\nTerms added sequentially (first to last)\n\"| __truncated__

Finally I extracted Resid. Dev but it gives me an error:

> av.1$Resid. Dev
Error: unexpected symbol in "av.1$Resid. Dev"

回答1:


Use quotation marks

> av.1$"Resid. Dev"
[1] 10.581446  5.129141  5.129141

Equivalently

av.1[["Resid. Dev"]]



回答2:


Use the [ operator to access the forth column:

av.1[,4]

Or if you want to use $ qoute the column name:

av.1$`Resid. Dev`
av.1$"Resid. Dev"



回答3:


You can't use unquoted spaces with the $, so use [ instead:

>av.1["Resid. Dev"]
          Resid. Dev
NULL      10.5814459
outcome    5.1291411
treatment  5.1291411


来源:https://stackoverflow.com/questions/19432229/extract-residual-deviance-from-anova-glm-in-r

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!