Как добавить среднюю линию к сгруппированному графику плотности в R?

#r #ggplot2 #mean #density-plot

#r #ggplot2 #означать #плотность-график

Вопрос:

Я пытаюсь нарисовать сгруппированный график плотности и добавить среднюю линию каждого графика; вот код

  data lt;- data.frame(  Accuracy=abs(rnorm(140)), Species=c(rep("A.All",20),rep("B. double",60),rep("C.single",60),  rep("D.All",20),rep("E.double",60),rep("F.single",60)),  Modality=c(rep("All,w0",10),rep("double1,w0",10),rep("double2,w0",10),rep("double3,w0",10),  rep("single1,w0",10),rep("single2,w0",10),rep("single3,w0",10),  rep("All,w2",10),rep("double1,w2",10),rep("double2,w2",10),rep("double3,w2",10),  rep("single1,w2",10),rep("single2,w2",10),rep("single3,w2",10)) )   plt;-ggplot(data, aes(x=Accuracy, fill=Modality))    geom_density(alpha=0.4)   facet_wrap(. ~ Species)    xlab("Accuracy")   ylab("Density")  library(plyr) mu lt;- ddply(data, "Modality", summarise, grp.mean=mean(Accuracy)) head(mu)   # Add mean lines alt;-p geom_vline(data=mu, aes(xintercept=grp.mean, color=Modality),  linetype="dashed")  xlab("Accuracy")   ylab("Density")   

Однако, основываясь на выходной цифре, как введите описание изображения здесь

Средние линии абсолютно неверны, например, для первого рисунка слева вверху должно быть две линии для двух графиков плотности, но пара линий создается и повторяется для всех фигур.

Ответ №1:

Вы можете указать как Species и Modality

plyr

 dummy lt;- ddply(data, c("Species","Modality"), summarise, grp.mean=mean(Accuracy))  ggplot(data, aes(x=Accuracy, fill=Modality))    geom_density(alpha=0.4)   facet_wrap(. ~ Species)    xlab("Accuracy")   ylab("Density")    geom_vline(data = dummy, aes(xintercept = grp.mean, color = Modality))  

dplyr

 library(dplyr)    dummy lt;- data %gt;%  group_by(Species, Modality) %gt;%  summarize(mean = mean(Accuracy))  ggplot(data, aes(x=Accuracy, fill=Modality))    geom_density(alpha=0.4)   facet_wrap(. ~ Species)    xlab("Accuracy")   ylab("Density")    geom_vline(data = dummy, aes(xintercept = mean, color = Modality))  

введите описание изображения здесь

Комментарии:

1. Спасибо вам за ответ! Я получаю эту ошибку из вашего кода «Ошибка в FUN(X[[i]], …) : объект «Модальность» не найден».

2. @Кэти, это действительно работает на меня. Есть ли Modality колонка внутри data ? Где произошла эта ошибка?

3. Я запустил тот же код, что и вы, но я не уверен, почему он выдает мне эту ошибку.

4. @Katie Можете ли вы попробовать с data вами указать выше в своем вопросе? И где же возникает эта ошибка?

5. Вы мне очень помогли! Я был действительно измотан.