Метки крайних значений в geom_boxplot

Я пытаюсь добавить метки для экстремальных значений (выбросов или нет) на графиках geom_box. Я нашел этот вопрос, который почти точно похож на мой geom_boxplot ] Ответ, предоставленный yonicd, почти работает для меня:

df=rbind(data.frame(id=rep("1",100),var=paste0("V",seq(1,100)),
         val=rnorm(100,0,5)),
         data.frame(id=rep("2",100),var=paste0("V",seq(1,100)),
         val=rnorm(100,0,3)))


df_bound=df%.%group_by(id)%>%do(.,data.frame(val=boxplot.stats(.$val)$out))
df_bound=left_join(df_bound, df, by=c("id","val"))

ggplot(df,aes(x=id, y=val, fill=id, label=var)) + geom_boxplot() +
geom_point(aes(group=id), data=df_bound)+
geom_text(aes(group=id), data=df_bound, hjust=-1, size=4)

Кажется очевидным, что мне просто нужно заменить [$out] в

 df_bound=df%.%group_by(id)%>%do(.,data.frame(val=boxplot.stats(.$val)$out))

иметь экстремальные значения вместо выбросов. Если я использую

df_bound=df%.%group_by(id)%>%do(.,data.frame(val=boxplot.stats(.$val)$stats))

метки для выбросов не отображаются. Как можно это исправить?


person Hugo    schedule 21.05.2015    source источник
comment
Я полагаю, это потому, что значения conf (нижний и верхний крайние значения «метки») вычисляются (если я правильно понял из ?boxplot.stats), а не значения, найденные в df, поэтому соединение не может работать.   -  person erc    schedule 22.05.2015
comment
Спасибо. Я исправил пост соответственно. Если вместо этого я использую [ $stats ], метки будут крайними значениями усов.   -  person Hugo    schedule 23.05.2015


Ответы (1)


Таким образом, код работает с последней версией dplyr: измените оператор %.% на канал magrittr %>%. Добавлен [c(1,5)], который подмножает «нижние» и «верхние» крайние значения усов в boxplot.stats$stats.

df_bound <- df%>%group_by(id)%>%do(.,data.frame(val=boxplot.stats(.$val)$stats[c(1,5)]))

person Peter    schedule 15.05.2017
comment
Является ли это полным ответом на проблему, изложенную в вопросе? Больше похоже на длинный комментарий. - person BartoszKP; 15.05.2017