Hi Jose, I need to make a small correction in my code - mod$data$B works for glm objects, but not lm or aov objects. For those use, mod$model$B.
On Oct 17, 2005, at 6:26 AM, Martin Henry H. Stevens wrote: > Hi Jose, > I am just beginning to plumb the depths of lattice, but perhaps my > recent experience can help. > I recently figured out (with encouragement from the list) how to plot > predicted values from a model into the appropriate panel. I am > certain that what I have done can be done better, but the following > appears to work for me. > > Imagine the model > mod <- lm(Y ~ A + B) > where A is continuous and B is a factor. > > I created a new function to use in the panel > > panel.modfinal <- function(mod, x, y, subscripts, groups) > xfit <- seq(min(x), max(x), length=21) > b <- factor( rep(levels(mod$data$B), rep(21,4)) ) > yfit <- predict(mod, newdata=data.frame(A=rep(xfit,4), B=b) ) > [b==unique(groups[subscripts] ) ] > llines(xfit,yfit,lty=1) } > > I then plot the data and the fitted lines with constant slope and > unique intercepts: > > xyplot(Y ~ A | B, groups=B, > panel=function(x,y, subscripts,groups){ > panel.xyplot(x,y) > panel.modfinal(mod,x,y,subscripts,groups) } ). > > "groups" seems to identify a variable that you want pass to a panel > or legend/key function, and subscripts seems to identify the rows > used in each panel. > > I hope the above is correct and doesn't thereby mislead you, but it > seems to work for me. > > Hank Stevens > > On Oct 14, 2005, at 7:34 PM, Jose Claudio Faria wrote: > > >> # Dear R list, >> # >> # I'm needing help with lattice, regression and respective lines. >> # My data is below: >> >> bra = gl(2, 24, label = c('c', 's')) >> em = rep(gl(3, 8, label = c('po', 'pov', 'ce')), 2) >> tem = rep(c(0, 0, 30, 30, 60, 60, 90, 90), 6) >> tem2 = tem^2 >> r = rep(1:2, 24) >> y = c(40.58, 44.85, 32.55, 35.68, 64.86, 51.95, 42.52, 52.21, >> 40.58, 44.85, 33.46, 46.09, 12.75, 18.01, 16.82, 13.69, >> 40.58, 44.85, 34.45, 29.89, 34.91, 28.10, 27.52, 22.24, >> 48.68, 47.25, 45.58, 45.33, 41.03, 51.20, 45.85, 54.45, >> 48.68, 47.25, 19.88, 19.67, 16.20, 13.49, 13.75, 18.80, >> 48.68, 47.25, 42.19, 39.91, 34.69, 34.11, 32.74, 34.24) >> >> Df = data.frame(bra, em, tem, tem2, r, y) >> >> # Regressions >> attach(Df) >> Dfs1=subset(Df, (bra=='s' & em=='pov'), select=c(bra, em, tem, >> tem2, r, y)) >> Dfs1 >> rlin1=lm(y ~ tem + tem2, data=Dfs1) >> summary(rlin1) >> >> Dfs2=subset(Df, (bra=='s' & em=='po'), select=c(bra, em, tem, r, >> y)) >> Dfs2 >> rlin2=lm(y ~ tem, data=Dfs2) >> summary(rlin2) >> >> Dfs3=subset(Df, (bra=='s' & em=='ce'), select=c(bra, em, tem, >> tem2, r, y)) >> Dfs3 >> rlin3=lm(y ~ tem + tem2, data=Dfs3) >> summary(rlin3) >> detach(Df) >> >> # I would like to plot with lattice 'y ~ tem | em', >> # with the panels ('po', 'pov' and 'ce'), >> # and the its respective regressions lines: >> # a) linear for panel 'po' or better, without line; >> # b) quadratic for 'pov' and 'ce' >> >> # Is it possible? Could somebody hel me? >> >> # I'm trying: >> library(lattice) >> attach(Df) >> Dfs=subset(Df, bra=='s', select=c(bra, em, tem, y)) >> Dfs >> xyplot(y ~ tem | em, >> data = Dfs, ylim=c(10, 60), xlim=c(-10, 110), >> ylab='y', xlab='Time, days', >> layout = c(3,1)) >> detach(Df) >> >> TIA, >> -- >> Jose Claudio Faria >> Brasil/Bahia/UESC/DCET >> Estatistica Experimental/Prof. Adjunto >> mails: >> [EMAIL PROTECTED] >> [EMAIL PROTECTED] >> [EMAIL PROTECTED] >> tel: 73-3634.2779 >> >> ______________________________________________ >> R-help@stat.math.ethz.ch mailing list >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide! http://www.R-project.org/posting- >> guide.html >> >> > > Dr. Martin Henry H. Stevens, Assistant Professor > 338 Pearson Hall > Botany Department > Miami University > Oxford, OH 45056 > > Office: (513) 529-4206 > Lab: (513) 529-4262 > FAX: (513) 529-4243 > http://www.cas.muohio.edu/~stevenmh/ > http://www.muohio.edu/ecology/ > http://www.muohio.edu/botany/ > "E Pluribus Unum" > > ______________________________________________ > R-help@stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! http://www.R-project.org/posting- > guide.html > Dr. Martin Henry H. Stevens, Assistant Professor 338 Pearson Hall Botany Department Miami University Oxford, OH 45056 Office: (513) 529-4206 Lab: (513) 529-4262 FAX: (513) 529-4243 http://www.cas.muohio.edu/~stevenmh/ http://www.muohio.edu/ecology/ http://www.muohio.edu/botany/ "E Pluribus Unum" ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html