[R] xyplot and for loops

Dave Atkins datkins at u.washington.edu
Wed May 5 00:40:34 CEST 2004

I'm attempting to use xyplot() within a for() loop to plot the relationship 
between a DV and a series of predictor variables, split by 2 conditioning 
variables.  However, xyplot() does not "seem" to be recognized within the for() 
loop; I don't receive any error message, but nothing is plotted and a plotting 
device is not opened.  When I use the generic function plot(), everything works 
as expected.  I'm using R v1.9.0 and lattice v0.9-11.

Here's a trivial example:

### create single outcome and two predictors
 > y.tmp <- rnorm(20) ; x1.tmp <- rnorm(20) ; x2.tmp <- rnorm(20)
### combine into data.frame
 > tmp.df <- data.frame(y.tmp, x1.tmp, x2.tmp)
 > tmp.df
         y.tmp       x1.tmp      x2.tmp
1   1.5022759 -0.150326662 -1.36627981
20  1.2667825 -0.070356651 -0.38433160

### simple loop calling the columns of tmp.df to specify x variables
 > for (i in 2:3){
+ plot(tmp.df$y.tmp ~ tmp.df[,i])
+ }
### works fine for plot()

### try the same with xyplot()
 > for (i in 2:3){
+ xyplot(tmp.df$y.tmp ~ tmp.df[,i])
+ }
### nothing happens; no error msg; no plotting device opened

 > xyplot(tmp.df$y.tmp ~ tmp.df[,2])
### without loop works fine and plots relationship of x1.tmp and y.tmp

Can someone see what I'm missing?  Any directions/pointers appreciated.

cheers, Dave
datkins at u.washington.edu

More information about the R-help mailing list