#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».