Исключить категории в боксплоте в соответствии с размером / частотой выборки

У меня есть большая база данных, из которой я хотел бы создать коробочный график:

данные: test.hospital

y: результаты испытаний (%): всего 1500 образцов

х1: разные годы (2011-2017)

х2: разные больницы (30 разных названий больниц)

Размер выборки сильно отличается в разных больницах, поэтому в некоторых случаях данных на самом деле слишком мало, чтобы что-либо сказать о них. Поэтому я хотел бы исключить все больницы из моего бокса с размером выборки<15.

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

Как вы, вероятно, понимаете, я очень плохо знаком с R, поэтому для большинства людей это проблема. очень простой вопрос... но мне бы очень хотелось получить ответ на него...!

Большое спасибо:)

1 ответ

Решение

Попробуй использовать dplyr пакет. group_by помогает различать больницы, mutate считает их, filter выбирает больницы с минимум 15 наблюдениями. %>% символ трубы для присоединения к функциям.

install.packages(dplyr)
library(dplyr)
test.hospital.filtered <- group_by(test.hospital, x2) %>%
mutate(sampled_count = n()) %>%
filter(sampled_count >= 15)

Сейчас использую ggplot для создания коробочных сюжетов. Годы указаны по оси x, результаты теста - по оси y, отображаются отфильтрованные больницы.

install.packages(ggplot)
library(ggplot)
ggplot(test.hospital.filtered, aes(x = x1, y = y, fill = x2)) +
geom_boxplot()
Другие вопросы по тегам