Let me admit at this point that I am not really sure that S4 classes
is the correct classification of such "@"-using extraction processes.
The documentation refers to "formal methods" and I don't yet have
enough knowledge to know that how tightly slots and formal classes are
linked with S4 or S3.
--
David Winsemius
On Feb 1, 2009, at 10:43 AM, David Winsemius wrote:
As Ben Bolker's reply hints, our difficulty was that because we were
insufficiently knowledgeable regarding working with S4 objects such
as "a" and summary(a) object. Both mle2 and summary(a) produce S4
objects which need a different set of extraction technology.
Although I did not know it last night, I have now looked at the help
page for "slot", followed the link to the help page for "@" labeled
"slotOp", and found that one can use "@" in much the same way one
uses "$".
> str(summary(a))
#Formal class 'summary.mle2' [package "bbmle"] with 3 slots
..@ call : language mle2(minuslogl = LL, fixed = list(xhalf = 6))
..@ coef : num [1, 1:4] 1.93e+01 1.71 1.13e+01 1.86e-29
.. ..- attr(*, "dimnames")=List of 2
.. .. ..$ : chr "ymax"
.. .. ..$ : chr [1:4] "Estimate" "Std. Error" "z value" "Pr(z)"
..@ m2logL: num 60.4
# So ....coef in this case is a 1 by 4 matrix and ...
summary(a)@coef["ymax","Std. Error"]
#yields
#[1] 1.711541
So we still have access to any of the components of an S4 object
such as a or summary(a), if we follow the trail of their respective
structures
--
David Winsemius
On Feb 1, 2009, at 7:50 AM, BooBoo wrote:
I had asked this question once before about a function in the NADA
package, and you provided this neat response:
[Begin quote]
An approach that may yield somewhat more self-documenting code
would be to examine either the fit object or the summary object
with str and then to access results by extracting named elements.
Since I don't have the package in question, let me use the lm
object on its help page as an example:
ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
group <- gl(2,10,20, labels=c("Ctl","Trt"))
weight <- c(ctl, trt)
lm.D9 <- lm(weight ~ group)
str(lm.D9)
str(summary(lm.D9))
summary(lm.D9)$coefficients
summary(lm.D9)$coefficients["groupTrt", "Pr(>|t|)"]
# to get the p-value
> summary(lm.D9)$coefficients["groupTrt","Pr(>|t|)"]
[1] 0.2490232
[End quote]
However, this does not seem to work with mle2, and the methods you
suggested this time don't allow me access to the "etc" (the
standard error and its probability for example). Is there a way to
do this similar to what you suggested for lm, where I can at
anything reported by mle2?
Tom
David Winsemius wrote:
On Jan 31, 2009, at 9:13 PM, Tom La Bone wrote:
The mle2 function (bbmle library) gives an example something like
the
following in its help page. How do I access the coefficients,
standard
errors, etc in the summary of "a"?
?coef
?vcov
eeep. Further comment on "etc" not possible at this time. Mind
reading equipment malfunction.
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.