title: xyplot not merging plots when more than two conditioning variables
body: <p>When I run the following code, <code>xyplot</code> produces 4 separate plots 2 by 3 plots, 
  whereas I want a single 4 by 6 trellis (to save real estate 
  space on the axis anotation and legends).</p>
  
  <p>Note that my problem is different from this <a href="https://stackoverflow.com/questions/2540129/lattice-multiple-plots-in-one-window">one</a> in that I don't want to 
  see four set of axis/legends.</p>
  
  <p>Here is some example data:</p>
  
  <pre><code>B &lt;- structure(list(yval = c(0.88, 4.31, 7.52, 3.21, 3.27, 4.93, 4.21, 
  0.7, 0.68, 0.92, 3.86, 5.67, 9.08, 1.95, 3.27, 1.44, 2.38, 0.85, 
  0.79, 0.55, 0.79, 10.52, 0.9, 4, 0.78, 2.46, 0.78, 1.64, 2.47, 
  0.77, 0.83, 0.86, 3.65, 8.25, 0.65, 0.88, 0.95, 4.05, 4.98, 1.43, 
  4.43, 2.94, 5.52, 0.9, 3.69, 0.79, 0.74, 1.49, 7.29, 0.58, 8.47, 
  5.82, 0.84, 0.87, 0.69, 1.38, 0.83, 2.32, 0.86, 7.32, 6.73, 6.7, 
  3.3, 1.58, 2.74, 0.88, 4.2, 3.79, 4.98, 2.54, 1.84, 1.2, 2.59, 
  11.99, 0.78, 0.92, 0.59, 3.83, 0.92, 2.6, 0.95, 3.18, 2.75, 9.83, 
  9.81, 0.55, 0.83, 6.29, 1.64, 1.12, 0.65, 3.96, 4.27, 3.99, 20, 
  0.83, 6.23, 6.81, 0.86, 0.7), xval = c(0.62, 0.81, 9.01, 3.72, 
  1.49, 3.92, 6.22, 6.64, 5.56, 6.64, 4, 7.36, 9.6, 1, 1.64, 3.34, 
  3.47, 3.37, 4.34, 6.63, 7.62, 4.07, 5.69, 3.76, 9.74, 1.58, 1.53, 
  2.62, 1.64, 1.18, 9.79, 9.9, 2.76, 7.96, 5.11, 4.74, 9.92, 0.49, 
  9.05, 8.59, 0.7, 5.8, 5.34, 3.14, 6.96, 2.05, 8.29, 0.35, 7.52, 
  6.56, 2.01, 7.92, 3.89, 6.31, 8.64, 6.18, 4.49, 0.63, 7.52, 7.82, 
  1.25, 9.54, 4.68, 0.4, 1.38, 8.7, 4.71, 8.27, 5.72, 0.75, 6.08, 
  0.11, 1.38, 0.37, 4.94, 0.53, 7.53, 3.11, 2.73, 4.93, 9.47, 2.18, 
  4.54, 7.12, 8.28, 6.62, 5.14, 4.42, 0.21, 9.52, 3.77, 6.43, 6.78, 
  6.87, 9.47, 6.42, 0.81, 8.88, 7.2, 8.68), gval = c(1, 2, 5, 5, 
  2, 1, 2, 1, 2, 3, 6, 5, 1, 3, 2, 3, 5, 2, 6, 4, 4, 1, 1, 6, 4, 
  2, 1, 2, 4, 5, 5, 3, 6, 5, 4, 2, 2, 3, 3, 6, 2, 4, 1, 4, 4, 1, 
  1, 2, 2, 5, 1, 1, 2, 2, 1, 3, 1, 5, 6, 5, 1, 5, 4, 4, 3, 6, 6, 
  4, 5, 4, 4, 6, 5, 6, 5, 2, 1, 1, 6, 6, 2, 5, 5, 1, 1, 4, 6, 3, 
  4, 6, 3, 5, 3, 3, 6, 2, 1, 5, 1, 3), type = c(5, 2, 1, 5, 1, 
  1, 1, 1, 2, 12, 5, 1, 2, 5, 5, 12, 12, 12, 12, 2, 12, 2, 12, 
  5, 12, 2, 12, 12, 5, 12, 12, 12, 5, 2, 5, 12, 1, 1, 1, 1, 2, 
  12, 1, 12, 2, 12, 2, 2, 1, 1, 2, 1, 5, 12, 12, 5, 12, 5, 5, 1, 
  1, 1, 2, 5, 5, 5, 5, 5, 1, 5, 12, 12, 5, 2, 12, 12, 1, 1, 5, 
  5, 5, 2, 5, 1, 2, 2, 5, 1, 5, 2, 5, 5, 5, 2, 2, 5, 1, 2, 2, 5
  ), cr = c(0.2, 0.4, 0.4, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.4, 0.4, 
  0.4, 0.4, 0.2, 0.4, 0.4, 0.4, 0.2, 0.2, 0.2, 0.2, 0.4, 0.4, 0.4, 
  0.2, 0.2, 0.2, 0.4, 0.2, 0.2, 0.4, 0.4, 0.4, 0.4, 0.2, 0.4, 0.2, 
  0.4, 0.2, 0.2, 0.4, 0.4, 0.2, 0.2, 0.4, 0.2, 0.2, 0.2, 0.4, 0.2, 
  0.4, 0.2, 0.2, 0.4, 0.4, 0.2, 0.2, 0.4, 0.2, 0.4, 0.4, 0.4, 0.4, 
  0.2, 0.4, 0.4, 0.4, 0.4, 0.2, 0.4, 0.4, 0.2, 0.4, 0.4, 0.2, 0.2, 
  0.2, 0.2, 0.2, 0.4, 0.4, 0.4, 0.2, 0.4, 0.4, 0.2, 0.2, 0.4, 0.4, 
  0.2, 0.2, 0.2, 0.4, 0.2, 0.4, 0.4, 0.4, 0.4, 0.2, 0.2), p = c(4, 
  12, 12, 8, 12, 8, 12, 4, 4, 8, 8, 4, 4, 8, 8, 8, 4, 12, 8, 4, 
  12, 12, 12, 12, 8, 12, 4, 4, 8, 8, 8, 4, 8, 12, 4, 12, 12, 4, 
  12, 8, 4, 4, 12, 4, 4, 8, 4, 4, 8, 4, 8, 12, 12, 8, 4, 8, 8, 
  8, 8, 12, 4, 8, 4, 12, 4, 4, 12, 4, 12, 12, 8, 4, 4, 12, 8, 12, 
  4, 4, 12, 4, 8, 4, 8, 12, 8, 4, 4, 4, 8, 4, 4, 12, 8, 12, 8, 
  4, 4, 8, 8, 4), nsamp = c(100, 300, 300, 200, 300, 200, 300, 
  100, 100, 200, 200, 100, 100, 200, 200, 200, 100, 300, 200, 100, 
  300, 300, 300, 300, 200, 300, 100, 100, 200, 200, 200, 100, 200, 
  300, 100, 300, 300, 100, 300, 200, 100, 100, 300, 100, 100, 200, 
  100, 100, 200, 100, 200, 300, 300, 200, 100, 200, 200, 200, 200, 
  300, 100, 200, 100, 300, 100, 100, 300, 100, 300, 300, 200, 100, 
  100, 300, 200, 300, 100, 100, 300, 100, 200, 100, 200, 300, 200, 
  100, 100, 100, 200, 100, 100, 300, 200, 300, 200, 100, 100, 200, 
  200, 100)), .Names = c("yval", "xval", "gval", "type", "cr", 
  "p", "nsamp"), row.names = c(NA, -100L), class = "data.frame")
  </code></pre>
  
  <p>And here is the code I am running:</p>
  
  <pre><code>library(lattice)
  library(latticeExtra)
  library(grid)
  
  types&lt;-rep(NA,6)
      types[1]&lt;-expression(paste(epsilon,"=",0.2,", p=",4,sep=""))
      types[2]&lt;-expression(paste(epsilon,"=",0.2,", p=",8,sep=""))
      types[3]&lt;-expression(paste(epsilon,"=",0.2,", p=",12,sep=""))
      types[4]&lt;-expression(paste(epsilon,"=",0.4,", p=",4,sep=""))
      types[5]&lt;-expression(paste(epsilon,"=",0.4,", p=",8,sep=""))
      types[6]&lt;-expression(paste(epsilon,"=",0.4,", p=",12,sep=""))
      types&lt;-rep(types,4)
      cl&lt;-rainbow(7)[-4]
  
  xyplot(B$yval~B$xval|as.factor(B$p)*as.factor(B$cr)*as.factor(B$type),
      group=B$gval, as.table=TRUE, 
      ylab=expression(kappa(Sigma,S)), col=cl, xlab=expression(nu),  
      xlim=c(0,10), ylim=c(0,10), type=c("l","g"), lwd=5, cex.lab=2,
      strip=function(...){
          panel.fill(trellis.par.get("strip.background")$col[1])
          type &lt;- types[panel.number()]
          grid::grid.text(label=type,x=0.5,y=0.5,gp=gpar(fontsize=20))
          grid::grid.rect()
      }, 
      key=list(text=list(c("A","B","C","D","E","F"),cex=2),  
      lines=list(type=rep("l",6), label.cex=2,col=cl,lwd=3),columns=3), 
      par.settings=list(par.xlab.text=list(cex=2),axis.text=list(cex=2),  
      par.ylab.text=list(cex=2)))
  </code></pre>