Oi, gente!
Eu possuo um questionário com x perguntas que as pessoas respondem com valores de 1 a 5. A minha tabela então é com y linhas, cada linha representando as respostas de 1 pessoa ao longo dessas colunas de perguntas. O que eu preciso fazer é como se fosse um count() de cada coluna, mas de todas ao mesmo tempo, e salvar isso em uma tabela.
Tenho aqui um exemplo:
exemplo <- data.frame("posso praticar" = c(1, 3, 3, 5, 4, 2, 2),
"temos tempo" = c(2, 2, 5, 4, 3, 5, 1),
"recebo feebback" = c(1, 1, 1, 5, 3, 2, 4),
"bom lider" = c(5, 5, 4, 4, 3, 2, 1))
> exemplo
posso.praticar temos.tempo recebo.feebback bom.lider
1 1 2 1 5
2 3 2 1 5
3 3 5 1 4
4 5 4 5 4
5 4 3 3 3
6 2 5 2 2
7 2 1 4 1
Eu encontrei um código no stackoverflow que faz essa soma, mas eu não tenho ideia de como ele funciona… A única coisa que eu fiz nele foi chamar de “likert” o espaço que eu entendi que era referente as colunas e “freq” o que receberia as categorias a serem somadas. Foi total tentativa e erro, então a primeira coisa que eu peço é ajuda pra entender o porquê desse código ter funcionado hahaha
soma <- exemplo %>%
gather(likert, freq) %>%
group_by(likert, freq) %>%
summarise(no = n()) %>%
spread(likert, no)
> soma
# A tibble: 5 x 5
freq bom.lider posso.praticar recebo.feebback temos.tempo
<dbl> <int> <int> <int> <int>
1 1 1 1 3 1
2 2 1 2 1 2
3 3 1 2 1 1
4 4 2 1 1 1
5 5 2 1 1 2
O segundo problema é que a tabela gerada tem as colunas em ordem diferente da primeira, e é importante pra mim que elas sigam exatamente a mesma ordem porque depois eu me baseio nisso pra dividir em grupos menores (depender dos nomes das colunas é ruim porque são perguntas gigantes).
Como eu consigo resolver essa questão da ordem das colunas? Quando eu rodo esse código da soma aparece a mensagem:
``summarise()regrouping output by 'likert' (override with
.groups argument)
Eu testei os argumentos do .groups dentro do summarise mas nenhum deu certo (achei que o “drop” fosse resolver).
Obrigada pela atenção!!