Вы можете использовать ggplot2
пакет, используя stat = identity
и facet_wrap
.Кроме того, вы можете использовать функцию melt
из пакета reshape2
, чтобы преобразовать данные, удобные для использования в ggplot2
- из широкого в узкий формат набора данных.Пожалуйста, смотрите код ниже:
library(ggplot2)
library(reshape2)
data <- structure(list(sex = structure(c(2L, 1L, 1L), .Label = c("female",
"male"), class = "factor"), ethnicity = structure(c(1L, 1L, 2L
), .Label = c("dutch", "german"), class = "factor"), x2015 = c(112L,
114L, 102L), x2016 = c(117L, 118L, 101L), x2017 = c(116L, 120L,
99L)), class = "data.frame", row.names = c(NA, -3L))
df <- melt(data)
ggplot(df, aes(x = ethnicity, y = value, fill = variable)) +
geom_bar(stat = "identity") +
facet_wrap(~ sex)
Выход: ![enter image description here](https://i.stack.imgur.com/pyzDh.png)