[R] Condition layer across panels in lattice
Jeff Stevens
stev0175 at gmail.com
Mon Feb 15 17:58:37 CET 2016
I would like to plot individual subject means for two different
conditions in a lattice stripplot with two panels. I would also like
to add within-subject confidence intervals that I have calculated and
stored in separate data frame. I am trying to overlay these confidence
intervals with latticeExtra's layer function. When I add the layer,
either both sets of intervals display on both panels (as illustrated
in code) or both sets of intervals display on only the first panel if
I add [subscripts] to the x's and y's in the layer command
(illustrated in second code clip). How do I get the appropriate
intervals to display on the appropriate panel?
Produces stripplot with both sets of intervals on both panels:
raw_data <- data.frame(subject = rep(1:6, 4), cond1 =
as.factor(rep(1:2, each = 12)), cond2 = rep(rep(c("A", "B"), each =
6), 2), response = c(2:7, 6:11, 3:8, 7:12))
summary_data <- data.frame(cond1 = as.factor(rep(1:2, each = 2)),
cond2 = rep(c("A", "B"), times = 2), mean = aggregate(response ~ cond2
* cond1, raw_data, mean)$response, within_ci = c(0.57, 0.54, 0.6,
0.63))
summary_data$lci <- summary_data$mean - summary_data$within_ci
summary_data$uci <- summary_data$mean + summary_data$within_ci
subject_stripplot <- stripplot(response ~ cond1 | cond2, groups =
subject, data = raw_data,
panel = function(x, y, ...) {
panel.stripplot(x, y, type = "b", lty = 2, ...)
panel.average(x, y, fun = mean, lwd = 2, col = "black", ...) #
plot line connecting means
}
)
addWithinCI <- layer(panel.segments(x0 = cond1, y0 = lci, x1 = cond1,
y1 = uci, subscripts = TRUE), data = summary_data, under = FALSE)
plot(subject_stripplot + addWithinCI)
Produces stripplot with both sets of intervals on only the first panel:
addWithinCI2 <- layer(panel.segments(x0 = cond1[subscripts], y0 =
lci[subscripts], x1 = cond1[subscripts], y1 = uci[subscripts],
subscripts = TRUE), data = summary_data, under = FALSE)
plot(subject_stripplot + addWithinCI2)
Thanks,
Jeff
More information about the R-help
mailing list