Je voudrais tracer des moyens de sujet individuels pour deux conditions différentes dans un treillis stripplot
avec deux panneaux. Je voudrais également ajouter des intervalles de confiance intra-sujets que j'ai calculés et stockés dans une trame de données séparée. J'essaie de superposer ces intervalles de confiance avec la fonction layer
de latticeExtra. Lorsque j'ajoute la couche, les deux ensembles d'intervalles apparaissent sur les deux panneaux (comme illustré dans le code et la première image ci-dessous) ou les deux ensembles d'intervalles sur le premier panneau si j'ajoute [subscripts]
aux x et y dans la commande layer
(illustré dans le deuxième clip de code et l'image ci-dessous). Comment puis-je obtenir les intervalles appropriés à afficher sur le panneau approprié?Conditionner la couche à travers les panneaux en treillis
library(latticeExtra)
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)
stripplot avec les deux ensembles d'intervalles sur les deux panneaux:
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)
stripplot avec les deux ensembles d'intervalles que sur le premier panneau