Р: Как сгруппировать элементы анкеты? - PullRequest
0 голосов
/ 14 апреля 2020

Я в значительной степени новичок в R. Я искал в Интернете последние несколько дней и не могу поверить, что не нашел ответа на свою (на первый взгляд, простую) проблему. Пожалуйста, прости меня, я хотел бы узнать, как это сделать.

Я провел опрос по gforms, где участники оценивали элементы от 1 до 10. После транспонирования у меня есть строки с отдельными элементами.

Что я хочу сделать, это сгруппировать отдельные строки / предметы по категориям (всего 6), чтобы сравнить баллы по категориям. Итак, позвольте мне сказать, строки 1-3 - это категория «A», строки 4–6 - категория «B» и т. Д. c. Но: как я могу сделать это с таким набором данных?

                          [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13]
new.vs.ancient               8    1    4    3    1    8    1    1    1     2     1     1     8
shrink.vs.grow               2    1    1    7    1    7    1    1    1     1     1     1     4
bad.vs.great                 3    1    2    2    1    8    1    1    1     2     1     1     4
presence.vs.absence          9    1    1    1    1    8    1    1    1     1     1     1     2
smart.vs.dumb                1    1    3    1    1    8    1    1    1     1     1     2     3
spend.vs.save                2    1    2    1    1    8    1    1    1     2     1     1     1
easy.vs.difficult            1    1    3    1    1    6    1    1    1     1     1     1     1
tiny.vs.huge                 1    1    1    1    1    8    1    1    1     1     1     1     1
unnecessary.vs.necessary.    1    1    1    1    1    7    1    1    1     1     1     1     1
create.vs.destroy            1    1    1    1    1    8    1    1    1     1     1     1     4

Я создал подмножества для каждой категории, но это не сильно помогло. Любая помощь с благодарностью!

Я хочу сделать такой график

1 Ответ

0 голосов
/ 14 апреля 2020

Я думаю, вы просто хотите добавить еще один столбец к вашим данным, который содержит информацию о группе.

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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...