I find it easier to 1) Use unclass(zz) rather than str(zz)
and 2) read the appropriate print method, here print.glm.dose, to see how it extracts the information. On Tue, 31 Dec 2002 [EMAIL PROTECTED] wrote: > > Jacquelin, > > Here is an answer to your question wrapped in much longer question of my > own. > > Cheers, > > Andy > > >----------------------------------------------------------------------------------------- > > Extracting components from complex objects is, in my opinion, not easy to > do unless I am missing something very obvious. Take the glm.dose object as > an example. Following the example on the dose.p help page I ran > > zz <- dose.p(budworm.lg0, cf = c(1,3), p = 1:3/4) > > Typing zz applies print method to the zz object and shows > > Dose SE > p = 0.25: 2.231264 0.2498235 > p = 0.50: 3.263587 0.2297039 > p = 0.75: 4.295910 0.2746190 > > If I now want to extract some of the numbers from zz, I have to go through > some hoops. What I usually do first is > > str(zz) > > This gives me > > Class 'glm.dose' atomic [1:3] 2.23 3.26 4.30 > ..- attr(*, "SE")= num [1:3, 1] 0.250 0.230 0.275 > .. ..- attr(*, "dimnames")=List of 2 > .. .. ..$ : chr [1:3] "p = 0.25:" "p = 0.50:" "p = 0.75:" > .. .. ..$ : NULL > ..- attr(*, "p")= num [1:3] 0.25 0.5 0.75 > > The format of this output is not really described on the str help page, so > I am guessing that what this means is that the "basic" object is a vector > of length 3 with a couple of attributes called SE and p, the SE attribute > having additional nested attribute called dimnames. We can onfirm that by > > attributes(zz) > > giving > > $names > [1] "p = 0.25:" "p = 0.50:" "p = 0.75:" > > $SE > > [,1] > p = 0.25: 0.2498235 > p = 0.50: 0.2297039 > p = 0.75: 0.2746190 > > $p > [1] 0.25 0.50 0.75 > > $class > [1] "glm.dose" > > So, If I want to extract the actual dose value from zz I just need > > zz[1] > > geting > > p = 0.25: > 2.231264 > > but if I want to get the first standard error I have to do > > attributes(zz)$SE[1] > > getting > > p = 0.25: > 0.2498235 > > > Is this a correct general method of extracting components from complex > objects? Is there a simpler way? > > Thanks in advance and sorry for this longish post, but this is something I > have been having problems with for a long time and it seems that every time > I run into this "extraction problem" I have to reinvent the wheel. > > Andy > > __________________________________ > Andy Jaworski > Engineering Systems Technology Center > 3M Center, 518-1-01 > St. Paul, MN 55144-1000 > ----- > E-mail: [EMAIL PROTECTED] > Tel: (651) 733-6092 > Fax: (651) 736-3122 > > > |---------+----------------------------------> > | | "Ngayee J Law" | > | | <Ngayee.Law@celeradiagn| > | | ostics.com> | > | | | > | | 12/31/2002 17:18 | > | | | > |---------+----------------------------------> > >>-----------------------------------------------------------------------------------------------------------------------------| > | > | > | To: [EMAIL PROTECTED] > | > | cc: [EMAIL PROTECTED] > | > | Subject: Re: [R] Probit Analysis > | > >>-----------------------------------------------------------------------------------------------------------------------------| > > > > > Hi Andy, > > Thanks! glm and dose.p can do exaclty what I want to do. Just a quick > question, > how can I extract the numbers in the glm.dose object created by the dose.p? > My > goal is to calculate a 95% CI for the 'LD50'. > > - Jacqueline > > > > > > apjaworski@mm > > m.com To: "Ngayee J Law" > <[EMAIL PROTECTED]> > cc: [EMAIL PROTECTED] > > 12/31/2002 Subject: Re: [R] Probit > Analysis > 02:47 PM > > > > > > > > > Jacqueline, > > This should be a simple application of GLM. Check the help pages for glm, > family and dose.p in library MASS. Look at the example at the bottom of > the dose.p help page - it does almost exactly what you need. > > Hope this helps, > > Andy > > __________________________________ > Andy Jaworski > Engineering Systems Technology Center > 3M Center, 518-1-01 > St. Paul, MN 55144-1000 > ----- > E-mail: [EMAIL PROTECTED] > Tel: (651) 733-6092 > Fax: (651) 736-3122 > > > |---------+----------------------------------> > | | "Ngayee J Law" | > | | <Ngayee.Law@celeradiagn| > | | ostics.com> | > | | Sent by: | > | | [EMAIL PROTECTED]| > | | ethz.ch | > | | | > | | | > | | 12/31/2002 16:17 | > | | | > |---------+----------------------------------> > > > >-----------------------------------------------------------------------------------------------------------------------------| > > > | > | > | To: [EMAIL PROTECTED] > | > | cc: > | > | Subject: [R] Probit Analysis > | > > > >-----------------------------------------------------------------------------------------------------------------------------| > > > > > > Hello all, > > I have a very simple set of data and I would like to analyze them with > probit analysis. > The data are: > > X Event Trial > 100 8 8 > 75 8 8 > 50 6 8 > 25 4 8 > 10 2 8 > 0 0 8 > > I want to estimate the value of X that will give a 95% hit rate > (Event/Trial) and the corresponding > 95% CI. Anyone can offer some help? Thanks!! > > - Jacqueline > > ______________________________________________ > [EMAIL PROTECTED] mailing list > http://www.stat.math.ethz.ch/mailman/listinfo/r-help > > ______________________________________________ > [EMAIL PROTECTED] mailing list > http://www.stat.math.ethz.ch/mailman/listinfo/r-help > -- Brian D. Ripley, [EMAIL PROTECTED] Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595 ______________________________________________ [EMAIL PROTECTED] mailing list http://www.stat.math.ethz.ch/mailman/listinfo/r-help
