Создание boxplot в ggplot2 с использованием сводной статистики

Ниже приведен код для создания боксплота с использованием ggplot2, который я пытаюсь изменить, чтобы удовлетворить мою проблему:

library(ggplot2)
set.seed(1)
# create fictitious data
a <- rnorm(10)
b <- rnorm(12)
c <- rnorm(7)
d <- rnorm(15)

# data groups
group <- factor(rep(1:4, c(10, 12, 7, 15)))

# dataframe
mydata <- data.frame(c(a,b,c,d), group)
names(mydata) <- c("value", "group")

# function for computing mean, DS, max and min values
min.mean.sd.max <- function(x) {
  r <- c(min(x), mean(x) - sd(x), mean(x), mean(x) + sd(x), max(x))
  names(r) <- c("ymin", "lower", "middle", "upper", "ymax")
  r
}

# ggplot code
p1 <- ggplot(aes(y = value, x = factor(group)), data = mydata)
p1 <- p1 + stat_summary(fun.data = min.mean.sd.max, geom = "boxplot") + ggtitle("Boxplot con media, 95%CI, valore min. e max.") + xlab("Gruppi") + ylab("Valori")

В моем случае у меня нет фактических точек данных, а только их среднее значение и стандартное отклонение (данные обычно распределяются). Так что для этого примера это будет:

mydata.mine = data.frame(mean = c(mean(a),mean(b),mean(c),mean(d)),sd = c(sd(a),sd(b),sd(c),sd(d)),group = c(1,2,3,4))

Однако я все еще хотел бы произвести коробочный сюжет. Я думал об определении: ymin = среднее значение - 3 * SD ниже = среднее значение - SD среднего = среднее значение верхнего = среднее + SD
ymax = среднее + 3 * с.д.

но я не знаю, как определить функцию, которая будет обращаться к mean и sd mydata.mine из fun.data в stat_summary. В качестве альтернативы я могу просто использоватьrnorm рисовать точки из нормали, параметризованных средним и сд, у меня есть, но первый вариант мне кажется немного более элегантным и простым.

Ответы на вопрос(1)

Ваш ответ на вопрос