Указание статистически значимой разницы в гистограмме. ИСПОЛЬЗОВАНИЕ R

Это повторение вопроса, заданного здесь: указав статистически значимую разницу в гистограмме, но попросил R вместо python.

Мой вопрос очень прост. Я хочу создать барьеры в R, используя ggplot2, если это возможно, с указанием значительной разницы между различными барами, например, произвести что-то подобное. У меня был обыск, но я не могу найти другой вопрос, задающий точно то же самое.

бар, показывающий полосы ошибок и сиг. разграничение маркировки

Вы можете использовать geom_path() и annotate() чтобы получить аналогичный результат. Для этого примера вы должны сами определить подходящее положение. В geom_path() для получения этих небольших тиков для подключения линий предусмотрено четыре номера.

 df<-data.frame(group=c("A","B","C","D"),numb=c(12,24,36,48)) g<-ggplot(df,aes(group,numb))+geom_bar(stat="identity") g+geom_path(x=c(1,1,2,2),y=c(25,26,26,25))+ geom_path(x=c(2,2,3,3),y=c(37,38,38,37))+ geom_path(x=c(3,3,4,4),y=c(49,50,50,49))+ annotate("text",x=1.5,y=27,label="p=0.012")+ annotate("text",x=2.5,y=39,label="p<0.0001")+ annotate("text",x=3.5,y=51,label="p<0.0001") 

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

Я знаю, что это старый вопрос, и ответ Дидзиса Элферца уже дает одно решение проблемы. Но недавно я создал расширение ggplot, которое упростило весь процесс добавления баров значимости: ggsignif

Вместо утомительного добавления geom_path и annotate к вашему сюжету вы просто добавляете один слой geom_signif :

 library(ggplot2) library(ggsignif) ggplot(iris, aes(x=Species, y=Sepal.Length)) + geom_boxplot() + geom_signif(comparisons = list(c("versicolor", "virginica")), map_signif_level=TRUE) 

Boxplot со значением

Полная документация пакета доступна в CRAN .

Я использовал предложенный метод выше, но я нашел функцию annotations проще для создания линий, чем функция geom_path. Просто используйте «сегмент» вместо «текст». Вы должны разбить вещи по сегментам и определить начальные и конечные значения x и y для каждого сегмента линии.

пример для создания 3-х сегментов:

 annotate("segment", x=c(1,1,2),xend=c(1,2,2), y= c(125,130,130), yend=c(130,130,125)) 
  • Прогнозирование временных рядов данных
  • R / regex with stringi / ICU: почему символ «+» считается символом non - ?
  • Что такое эффективный метод разделения и агрегирования интервалов из временных строк в кадре данных?
  • Как найти максимальное значение столбца в кадре данных в R?
  • Плотность2d Участок с использованием другой переменной для заполнения (аналогично geom_tile)?
  • Вставка таблицы под легендой в гистограмме ggplot2
  • Ошибка преобразования длинного списка data.frames (~ 1 миллион) в единый файл data.frame с использованием do.call и ldply
  • Как разбить данные на обучающие / тестовые наборы, используя функцию выборки
  • Создать zip-файл: команда выполнения ошибок "" имеет статус 127
  • Рабочий процесс для статистического анализа и составления отчетов
  • Строки data.frame в список
  • Interesting Posts

    Автоматическая синхронизация времени Windows чаще, чем по умолчанию.

    Ярлыки многострочной оси с вложенными переменными группировки

    Установка модема моего провайдера, чтобы я позвонил по моей стационарной линии, когда меня нет дома, используя свой внутренний скрытый SIP-сервер

    Visual Studio 2013 IntelliSense перестает работать для controllerов ASP.NET MVC5

    Имя папки на боковой панели изменилось, как ее вернуть?

    Изменить расположение узла node_modules

    Преобразование изображений в видео с использованием FFMPEG в Windows

    Чтение / запись INI-файла

    Как создать наложение справки, как вы видите в нескольких приложениях для Android и ICS?

    Поймать NSException в Swift

    Гиперссылки html с asp.net mvc

    Графические диаграммы на карте с использованием ggplot2?

    Местоположение Google Chrome

    Как запустить базу данных H2 в режиме сервера?

    Почему равный оператор не работает, если он не окружен пространством?

    Давайте будем гением компьютера.