[R] Problem with data frame when using xYplot?

Sander Oom slist at oomvanlieshout.net
Fri May 13 17:36:35 CEST 2005


Hi Deepayan!

Deepayan Sarkar wrote:
> On Friday 13 May 2005 08:07 am, Sander Oom wrote:
>>An off list response from Mat Soukop (thanks Mat!!) provides an even
>>more elegant solution (see code below)! I have included the original
>>code, so people can decide whether to plot in a single panel or in
>>multiple panels. Now we have a fully functional workaround to get
>>plotmeans{gplots} for multiple factors using lattice! Great!
>>
> 
> Just out of curiousity, does replacing the 'xlim' and 'scales' arguments above 
> by 
> 
> xlim = levels(tmp$Position)
> 
> do the same thing? It should with xyplot (which also allows the x variable to 
> be a factor), but xYplot may be bypassing that.
> 

You mean: xlim = levels(tmp$AltGeo)....yes it does!? No clue how one 
would ever get comfortable with all these options!


library(Hmisc)
library(lattice)
ltheme <- canonical.theme(color = FALSE)     ## in-built B&W theme
ltheme$strip.background$col <- "transparent" ## change strip bg
lattice.options(default.theme = ltheme)      ## set as default
tmp <-
structure(list(Position = structure(as.integer(c(1, 2, 1, 2,
1, 2, 1, 2)), .Label = c("Inside", "Outside"), class = "factor"),
     AltGeo = structure(as.integer(c(1, 1, 2, 2, 3, 3, 4, 4)), .Label = 
c("Basalt-High",
     "Basalt-Low", "Quartz-High", "Quartz-Low"), class = "factor"),
     Sodium = c(27.3333333333333, 26.8888888888889, 25, 18.1111111111111,
     4.66666666666667, 5.55555555555556, 10.6666666666667, 5.66666666666667
     ), SD = c(5.3851648071345, 2.42097317438899, 20.1618451536560,
     15.2679766541317, 5.45435605731786, 8.09492296305393, 10.6183802907976,
     8.06225774829855), Nobs = c(9, 9, 9, 9, 9, 9, 9, 9), Lower = 
c(25.5382783976218,
     26.0818978307592, 18.2793849487813, 13.0217855597339, 2.84854798089405,
     2.85724790120425, 7.12720656973412, 2.97924741723382), Upper = 
c(29.1283882690448,
     27.6958799470186, 31.7206150512187, 23.2004366624884, 6.48478535243929,
     8.25386320990686, 14.2061267635992, 8.35408591609952)), .Names = 
c("Position",
"AltGeo", "Sodium", "SD", "Nobs", "Lower", "Upper"), row.names = c("1",
"2", "3", "4", "5", "6", "7", "8"), class = "data.frame")
tmp$xvar <- rep(1:4, each=2)+rep(c(-0.1,0.1), 4)
tmp
sp <- list(superpose.symbol = list(pch = c(16,1), cex = 1))
xYplot(Cbind(Sodium,Lower,Upper) ~ xvar, groups=Position,  data=tmp,
   xlim = levels(tmp$AltGeo),
   ylim=c(min(tmp$Lower)-1,max(tmp$Upper)+1),
     xlab='AltGeo', ylab='Sodium',
         panel = function(x, y, type, ...) {
           panel.xYplot(x, y, type="p",...)
           lpoints(x, y, pch=16, col="white", cex=2)
           panel.superpose(x, y, type="p", ...)
         },
         par.settings = sp,
     auto.key=list(columns=1, x=0.7, y=0.8, corner = c(0,0))
     )

> Deepayan
> 
> ______________________________________________
> R-help at 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. Sander P. Oom
Animal, Plant and Environmental Sciences,
University of the Witwatersrand
Private Bag 3, Wits 2050, South Africa
Tel (work)      +27 (0)11 717 64 04
Tel (home)      +27 (0)18 297 44 51
Fax             +27 (0)18 299 24 64
Email   sander at oomvanlieshout.net
Web     www.oomvanlieshout.net/sander




More information about the R-help mailing list