Отображение 2-х двоичных переменных по годам с использованием geom_bar - PullRequest
0 голосов
/ 02 мая 2020

У меня есть набор данных, который состоит из 4 переменных и около 200 тыс. Полных наблюдений.

  • запись: идентификатор переменной

  • год: год травмы

  • txa: двоичный 0 / 1, 1 означает, что наркотик был дан

  • тупой: тип травмы тупой или проникающий, бинарный

1) Я пытаюсь создать барплот используя ggplot2, описывающий использование препарата для обоих типов травм в период с 2013 по 2019 год. Проблема в том, что мой Y-доступ показывает неправильное количество препарата, так как оба столбца для каждого типа травмы достигают максимума.

2) Я также пытаюсь разместить надписью над каждым полем, чтобы показать количество. (количество раз txa использовалось в течение этого года)

Я ценю любую помощь. Пожалуйста, смотрите код ниже.


utilize <- data.frame(txa = c(0,1,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1), 
                 year = c("2013","2016","2017", "2019", "2013", "2017", "2018", "2015", "2014", "2019", "2013","2016","2017", "2019", "2013", "2017", "2018", "2015", "2014", "2019","2013","2016","2017", "2019", "2013", "2017", "2018", "2015", "2014", "2019","2013","2016","2017", "2019", "2013", "2017", "2018", "2015", "2014", "2019","2013","2016","2017", "2019", "2013", "2017", "2018", "2015", "2014"), 
                 blunt=c("blunt","penetrating","blunt","blunt","penetrating","blunt","penetrating","blunt","penetrating","blunt", "blunt","penetrating","blunt","blunt","penetrating","blunt","penetrating","blunt","penetrating","blunt", "blunt","penetrating","blunt","penetrating","blunt","penetrating","blunt","penetrating","blunt","blunt","penetrating","blunt","blunt","penetrating","blunt","penetrating","blunt","penetrating","blunt","blunt","penetrating","blunt","blunt","penetrating","blunt","penetrating","blunt","penetrating","blunt"))

          util2 <- utilize %>% 
  group_by(year, blunt) %>% 
  summarise(txa_total = sum(txa))

ggplot(util2, aes(fill=blunt, y= txa_total, x=year, group = blunt)) +
  geom_bar(stat="identity", color="black", position=position_dodge())+
  geom_text(aes(label=txa_total), color="black", 
            size=3.5, position = position_dodge(width = 1), 
            vjust = -.25)+
  ylim(c(0,2000)) +
    theme(plot.title = element_text(size = 12, face = "bold"),
          plot.caption = element_text(face= "italic"),
          axis.title.x = element_text(size = 10, face= "bold"), 
          axis.title.y = element_text(size = 10, face= "bold"))+
    scale_fill_manual(name = "Type of trauma", values=c("#E69F00", "#56B4E9"))+
   labs(x = "Year of Injury",
y = "Count of cases receieving TXA",
title = "TXA Utilization in Trauma Patients in the State of Michigan Between 2013 and 2018",
subtitle= "Plot of number of trauma cases by year",
caption = "Data source: MTQIP 2013-2018")

1 Ответ

1 голос
/ 02 мая 2020

Я думаю, вам нужно преобразовать свои данные, чтобы сделать это проще. Если вы ищете использование (данное / общее), но должно быть легко перейти к итоговому вызову.

utilize <- data.frame(txa = c(0,1,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1), 
                      year = c("2013","2016","2017", "2019", "2013", "2017", "2018", "2015", "2014", "2019", "2013","2016","2017", "2019", "2013", "2017", "2018", "2015", "2014", "2019","2013","2016","2017", "2019", "2013", "2017", "2018", "2015", "2014", "2019","2013","2016","2017", "2019", "2013", "2017", "2018", "2015", "2014", "2019","2013","2016","2017", "2019", "2013", "2017", "2018", "2015", "2014"), 
                      blunt=c("blunt","penetrating","blunt","blunt","penetrating","blunt","penetrating","blunt","penetrating","blunt", "blunt","penetrating","blunt","blunt","penetrating","blunt","penetrating","blunt","penetrating","blunt", "blunt","penetrating","blunt","penetrating","blunt","penetrating","blunt","penetrating","blunt","blunt","penetrating","blunt","blunt","penetrating","blunt","penetrating","blunt","penetrating","blunt","blunt","penetrating","blunt","blunt","penetrating","blunt","penetrating","blunt","penetrating","blunt"))

util2 <- utilize %>% 
  group_by(year, blunt) %>% 
  summarise(txa_total = sum(txa))

ggplot(util2, aes(fill=blunt, y= txa_total, x=year, group = blunt)) +
  geom_bar(stat="identity", color="black", position=position_dodge())+
  geom_text(aes(label=txa_total), color="black", 
            size=3.5, position = position_dodge(width = 1), 
            vjust = -.25)+
  theme_bw()+
  labs(x = "Year of Injury",
       y = "Cases where TXA was administered",
       title = "Utilization of TXA in trauma patient between 2013 and 2019"
  )

enter image description here

...