Я думаю, вы просто хотите добавить еще один столбец к вашим данным, который содержит информацию о группе.
questionare <- data.frame(p1=sample(1:10,5),
p2=sample(1:10,5),
p3=sample(1:10,5),
p4=sample(1:10,5),
p5=sample(1:10,5),
row.names = paste0("q",1:5))
questionare$category <- c("A","A","B","B","C")
Таким образом, мы можем легко добавить группировку к вопросам. Чтобы воспроизвести сюжет, вы можете выполнить что-то вроде этого:
require(tidyverse)
questionare %>% gather(variable,value,-category) %>%
mutate(cat_values = plyr::mapvalues(x=value,
from = 1:10,
to=c(rep("Disagree",3),
rep("Neutral",4),
rep("Agree",3)))) %>%
group_by(category,cat_values) %>% tally() %>%
mutate(perc=n/sum(n)) -> questinaire_summarized
ggplot(questinaire_summarized,aes(x=perc,category,fill=cat_values))+
geom_bar(stat = "identity") +
scale_fill_brewer(palette = "Greys")+
theme_bw()