Создайте сгруппированную гистограмму с процентами и соответствующими метками значений

#r #ggplot2 #bar-chart

#r #ggplot2 #гистограмма

Вопрос:

Ниже приведен фрейм данных, для которого я хочу создать сгруппированную гистограмму

 df <- structure(list(Race = c("Caucasian/White", "African American", "Asian", "Other"), 'Hospital 1' = c(374, 820, 31, 108), 'Hospital 2' = c(291, 311, 5, 15), 'Hospital 3' = c(330, 206, 6, 5), 'Hospital 4' = c(950, 341, 6, 13)), class = "data.frame", row.names = c(NA, -4L))
  

Чтобы быть точным, я хочу сгруппировать каждую больницу в соответствии с «Расой». Каждый столбик больницы должен быть представлен в процентах с соответствующими метками значений.

В принципе, я не программист, но пытаюсь учиться.

Комментарии:

1. Возможно, этот сайт окажется для вас полезным: sthda.com/english/wiki /…

Ответ №1:

Вероятно, вам нужно что-то вроде этого:

 df %>% 
  pivot_longer(contains("Hospital"), names_to = "hospital", values_to = "count") %>% 
  group_by(hospital) %>% 
  mutate(percent = count/sum(count)) %>% 
  ggplot()  
  aes(x = hospital, y = percent, fill = Race)  
  geom_col(position = "stack")
  

Комментарии:

1. Спасибо @Will Oldham за усилия. Но то, что вы предложили, — это сложенный график. Я с нетерпением жду такого графика, как i.stack.imgur.com/AvDmV.png

2. Затем измените аргумент position на geom_col() «dodge».