Вы можете преобразовать свой фрейм данных в более длинный формат (здесь, используя pivot_longer
из tidyr
пакета), сгруппировать по «корзине» и различным «категориям», чтобы сосчитать для каждого из них и, наконец, построить его, используя geom_col
:
library(dplyr)
library(tidyr)
library(ggplot2)
df %>% pivot_longer(everything(),names_to = "var",values_to = "val") %>%
group_by(var,val) %>% count() %>%
ggplot(aes(x = val, y = n, fill = var))+
geom_col(position = position_dodge())
Отвечает ли он на ваш вопрос?
Воспроизводимые данные
structure(list(Promise_Bin = c("early", "early", "early", ">50",
">50", "<=50", "early", "early", "<=5", "<=5", "<=30", "early",
"<=30", "<=30", "<=10"), Due_Bin = c("early", ">50", ">50", ">50",
">50", "<=50", "early", "early", "<50", "<=5", "<=30", "early",
">50", "<=30", "<=10")), row.names = c(NA, -15L), class = c("data.table",
"data.frame"))