[R] Connecting lines across missing data points, xyplot
David Afshartous
dafshartous at med.miami.edu
Thu Jun 26 16:26:15 CEST 2008
All,
I have data across 5 time points that I am graphing via xyplot, along with
error bars. For one of the variables I have missing data for two of the
time points. The code below is okay but I can't seem to get the lines to
connect across the missing time points. Does anyone now how to rectify
this?
Cheers,
David Afshartous
library(lattice)
## the data
junk = data.frame(
Visit = as.factor(rep(seq(1,5), 2)),
Drug = rep(c("D", "P"), each = 5),
Aldo = c(13, NA, NA, 15, 14, 12, NA, NA, 14, 13),
SE.Aldo = c(3, NA, NA, 3, 3, 2, NA, NA, 2, 2),
lower.ci.Aldo = c(10, NA, NA, 12, 11, 10,NA, NA, 12, 11),
upper.ci.Aldo = c(16, NA, NA, 18, 17, 14, NA, NA, 16, 15)
)
## functions for the error bars
prepanel.ci <- function(x, y, ly, uy, subscripts, ...) {
x <- as.numeric(x)
ly <- as.numeric(ly[subscripts])
uy <- as.numeric(uy[subscripts])
list(ylim = range(y, uy, ly, finite = TRUE)) }
panel.ci <- function(x, y, ly, uy, subscripts, pch = 16, ...) {
x <- as.numeric(x)
y <- as.numeric(y)
ly <- as.numeric(ly[subscripts])
uy <- as.numeric(uy[subscripts])
panel.arrows(x, ly, x, uy, col = "black",
length = 0.25, unit = "native",
angle = 90, code = 3)
panel.xyplot(x, y, pch = 16, ...)}
## the plot, but visit 1 not connected to visit 4
xyplot(Aldo ~ as.numeric(Visit), xlab="Visit", ylab="Aldo",
groups=Drug,
data=junk,
ly = junk$lower.ci.Aldo,
uy = junk$upper.ci.Aldo,
prepanel = prepanel.ci,
panel = panel.superpose,
panel.groups = panel.ci,
type="b",
auto.key = list(space = "top", text = c( "D","P"), points = FALSE,
lines = TRUE, columns=2),
par.settings = list(superpose.line = list(lty = c(1,5), col=c('black',
'black') ) ) )
More information about the R-help
mailing list