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

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

данные: test.hospital

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

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

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

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

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

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

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


person Lotw    schedule 31.07.2017    source источник


Ответы (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()
person tlask    schedule 31.07.2017