coef(summary(fit))[,4]
从summary(fit)
所显示的表格输出中提取列向量p值。直到在模型拟合上运行summary()
之前,p值实际上并没有被计算出来。
顺便说一句,如果可以,请使用提取函数而不是深入对象:
fit$coefficients[2]
应该是
coef(fit)[2]
如果没有提取函数,str()
会是你的好朋友。它可以让你查看任何对象的结构,从而让你看到对象包含什么以及如何提取它:
summ <- summary(fit)
> str(summ, max = 1)
List of 17
$ call : language glm(formula = counts ~ outcome + treatment, family = poisson())
$ terms :Classes 'terms', 'formula' length 3 counts ~ outcome + treatment
.. ..- attr(*, "variables")= language list(counts, outcome, treatment)
.. ..- attr(*, "factors")= int [1:3, 1:2] 0 1 0 0 0 1
.. .. ..- attr(*, "dimnames")=List of 2
.. ..- attr(*, "term.labels")= chr [1:2] "outcome" "treatment"
.. ..- attr(*, "order")= int [1:2] 1 1
.. ..- attr(*, "intercept")= int 1
.. ..- attr(*, "response")= int 1
.. ..- attr(*, ".Environment")=<environment: R_GlobalEnv>
.. ..- attr(*, "predvars")= language list(counts, outcome, treatment)
.. ..- attr(*, "dataClasses")= Named chr [1:3] "numeric" "factor" "factor"
.. .. ..- attr(*, "names")= chr [1:3] "counts" "outcome" "treatment"
$ family :List of 12
..- attr(*, "class")= chr "family"
$ deviance : num 5.13
$ aic : num 56.8
$ contrasts :List of 2
$ df.residual : int 4
$ null.deviance : num 10.6
$ df.null : int 8
$ iter : int 4
$ deviance.resid: Named num [1:9] -0.671 0.963 -0.17 -0.22 -0.956 ...
..- attr(*, "names")= chr [1:9] "1" "2" "3" "4" ...
$ coefficients : num [1:5, 1:4] 3.04 -4.54e-01 -2.93e-01 1.34e-15 1.42e-15 ...
..- attr(*, "dimnames")=List of 2
$ aliased : Named logi [1:5] FALSE FALSE FALSE FALSE FALSE
..- attr(*, "names")= chr [1:5] "(Intercept)" "outcome2" "outcome3" "treatment2" ...
$ dispersion : num 1
$ df : int [1:3] 5 4 5
$ cov.unscaled : num [1:5, 1:5] 0.0292 -0.0159 -0.0159 -0.02 -0.02 ...
..- attr(*, "dimnames")=List of 2
$ cov.scaled : num [1:5, 1:5] 0.0292 -0.0159 -0.0159 -0.02 -0.02 ...
..- attr(*, "dimnames")=List of 2
- attr(*, "class")= chr "summary.glm"
因此,我们注意到可以使用
coef()
提取的
coefficients
组件,但是其他组件没有提取器,例如
null.deviance
,您可以将其提取为
summ$null.deviance
。
[g]lm
拟合中提取信息的帖子,例如:http://stackoverflow.com/questions/12496368/how-to-extract-tabular-summary-data-from-an-lm-command-in-r)。 - Ben Bolkerstr()
时最好添加一条注释。 - Ben Bolkercoef
的方法是执行methods(class="lm")
或methods(class="summary.lm")
。我同意你无法从查看str()
中发现可以使用coef()
。 - Ben Bolkerclass(fit)
,你会发现glm
拟合继承自类"lm"
,所以你需要寻找该类的方法。 - Gavin Simpson