Значения, полученные с помощью TukeyHSD
, предназначены для парных сравнений и, следовательно, не могут быть нанесены на график, который вы указали ранее.
Однако, есть подход для добавления стандартной ошибки sd/sqrt(n)
баров с dplyr
. Очевидно, что вы не можете добавить полосы ошибок для одного наблюдения, поэтому я расширил ваш набор данных несколькими случайными числами.
library(dplyr)
library(ggplot2)
VisualAcuity$Subject <- as.factor(VisualAcuity$Subject)
VisualAcuity$Day <- as.factor(VisualAcuity$Day)
VisualAcuity %>%
dplyr::group_by(Day,Subject) %>%
dplyr::summarize(Mean = mean(CW),std_err = sd(CW)/sqrt(n()), n = n()) %>%
ggplot(aes(x=Day, y=Mean, color = Subject, group = Subject)) +
geom_line(size=1,) +
geom_point(size=2, shape=21, aes(fill = Subject)) +
ylim(0, max(1)) + ylab ('Visual Acuity (CW)') +
geom_errorbar(aes(ymin = Mean - std_err, ymax = Mean + std_err))
![enter image description here](https://i.stack.imgur.com/fzfGD.png)
Данные
VisualAcuity <- structure(list(Subject = structure(c(1L, 1L, 1L, 2L, 2L, 2L,
3L, 3L, 3L, 4L, 4L, 4L, 1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 4L,
4L, 4L, 1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 4L, 4L, 4L), .Label = c("1",
"2", "3", "4"), class = "factor"), Day = structure(c(1L, 2L,
3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L,
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L,
2L, 3L), .Label = c("1", "2", "3"), class = "factor"), CW = c(0.528,
0.56, 0.486, 0.436, 0, 0.525, 0.622, 0.6, 0.522, 0.453, 0.5,
0.494, 0.566, 0.606, 0.56, 0.509, 0.054, 0.593, 0.645, 0.668,
0.56, 0.51, 0.508, 0.533, 0.518, 0.502, 0.413, 0.412, 0.042,
0.431, 0.582, 0.508, 0.435, 0.368, 0.417, 0.485)), row.names = c(NA,
-36L), class = "data.frame")