On Fri, Mar 5, 2010 at 12:45 PM, Seth W Bigelow <sbige...@fs.fed.us> wrote: > I'm stumped after an hour or so reading about subscripts in panel.xyplot. > Apparently the panel function is executed for each subset of data in the > main dataset (specified by the conditioning variable, 'site' in my > example), and the 'subscripts' keyword passes a vector of the > corresponding row numbers to the panel function. But, if I want the panel > function to simultaneously plot data from a different dataframe, as in the > example below, I don't understand how having a vector of row numbers from > a subset of the dataframe used in the main xyplot statement helps me with > selecting data from an entirely different dataframe ('q' in my example).
It doesn't (I didn't read your original question carefully enough). Look at ?which.packet. Continuing your example, q.split <- split(q, q$site) mypanel <- function(..., alt.data) { with(alt.data[[ which.packet()[1] ]], panel.xyplot(x = x, y = y, col="red")) panel.xyplot(...) } xyplot(y ~ x | site, d, alt.data = q.split, panel = mypanel) -Deepayan > > library(lattice) > > d <- data.frame(site = c(rep("A",12), rep("B",12)), > x=rnorm(24),y=rnorm(24)) > q <- data.frame(site = c(rep("A",7), rep("B",7)), > x=rnorm(14),y=rnorm(14)) > > mypanel <- function(...){ > panel.xyplot(q$x, q$y, col="red") > panel.xyplot(...)} > > xyplot(y ~ x | site, d, > panel = mypanel > ) > > --Seth > > > On Thu, Mar 4, 2010 at 4:42 PM, Seth W Bigelow <sbige...@fs.fed.us> wrote: >> I wish to create a multipanel plot (map) from several datasets ("d" and >> "q" in the example below). I can condition the main xyplot statement on >> the "site" variable, but I don't know how to pass a conditioning > variable >> to panel.xyplot plot so that the x-y coordinates from dataset q are only >> plotted at the appropriate site. > > The keyword is 'subscripts'. Look at the entry for 'panel' in ?xyplot, > and let us know if you still have doubts. > > -Deepayan > >> >> >> library(lattice) >> d <- data.frame(site = c(rep("A",12), rep("B",12)), >> x=rnorm(24),y=rnorm(24)) # Create dataframe "d", >> with 12 x-y coordinates for each site >> q <- data.frame(site = c(rep("A",7), rep("B",7)), >> x=rnorm(14),y=rnorm(14)) # Create dataframe "q", >> with 7 pairs of x-y coordinates for each site. >> >> mypanel <- function(...){ >> panel.xyplot(q$x, q$y, col="red") # Statement that >> needs a "Site" conditioning variable >> panel.xyplot(...)} >> >> xyplot(y~x|site, d, panel=mypanel) # Statement erroneously plots > all >> 14 x-y points in "q" on panels for sites A & B >> >> >> >> Dr. Seth W. Bigelow >> Biologist, USDA-FS Pacific Southwest Research Station >> 1731 Research Park Drive, Davis California >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> 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. >> > > [[alternative HTML version deleted]] > > ______________________________________________ > 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.