[R] conditioning variable in panel.xyplot?
Deepayan Sarkar
deepayan.sarkar at gmail.com
Sat Mar 6 06:28:04 CET 2010
On Fri, Mar 5, 2010 at 12:45 PM, Seth W Bigelow <sbigelow at 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 <sbigelow at 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 at 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 at 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.
>
More information about the R-help
mailing list