Google Form: Importando dados em R e publicando resultados em AnalyStats-App

Categorias: R

Existem vários serviços gratuitos de pesquisa web que permitem criar formulários online. Porém, há várias razões para que os formulários do Google Forms (baseados em planilhas) sejam um dos mais amigáveis e vantajosos.

Neste post, queremos mostrar a facilidade de importar no R dados de um formulário construído no Google Forms e, simultaneamente, publicar seus respectivos resultados no AnalyStats-App. Para isso, o primeiro requisito é criar um formulário (para detalhes sobre como criar formulários, clique aqui). Para ilustrar, criamos um formulário com seis variáveis a cerca da intenção de voto nas próximas eleições presidenciais na Colômbia. Uma vez que o formulário esteja pronto, o próximo passo é criar uma folha de respostas. Isso pode ser feito no campo de resposta do formulário, dando clic na caixa de cor verde que aparece na parte superior direita.

O próximo passo é obter o link de download. Para isso, deve-se baixar a folha de respostas no computador (preferivelmente em formato csv).

Uma vez que a folha de respostas esteja no computador, é possível acessar o link de download. Basta abrir a pasta de downloads do navegador web e copiar o link.

Agora, precisamos carregar os dados de nosso formulário no R. Para tal, fazemos uso da biblioteca RCurl

library(RCurl)
#URL é o link de  obtido no passo anterior
URL <- "LinkDeDescarga"
fileCSV <- getURL(URL,.opts=list(ssl.verifypeer=FALSE),.encoding='UTF-8')
MyDf <-  read.csv(textConnection(fileCSV))

Os dados armazenados são

#Nomes mais curtos que facilitem a leitura
names(MyDf) <- c("Fecha", "Nacimiento","Genero", "Depto","Ha votado","Candidato")
head(MyDf)
##                 Fecha Nacimiento Genero           Depto Ha votado
## 1 17/07/2017 22:13:21 25/12/1988 Hombre           Cesar        Sí
## 2 17/07/2017 22:16:33 11/07/1985 Hombre    Cundinamarca        No
## 3 17/07/2017 23:10:16 26/11/1987  Mujer       Antioquia        Sí
## 4 17/07/2017 23:33:54            Hombre    Cundinamarca        Sí
## 5 17/07/2017 23:46:05  4/02/1983 Hombre         Córdoba        Sí
## 6 17/07/2017 23:58:41 16/06/1984 Hombre Valle del Cauca        Sí
##       Candidato
## 1 Gustavo Petro
## 2 Gustavo Petro
## 3 Claudia López
## 4 Claudia López
## 5 Claudia López
## 6 Claudia López

Desse modo,os dados ficaram disponíveis para análise; como cálculo de medidas e construção de gráficos, por exemplo.

library(tidyverse)
# Número de votos por Candidato
candidatos <- MyDf%>% 
              group_by(Candidato) %>% 
              count(Candidato, sort = TRUE)
candidatos
## # A tibble: 8 x 2
## # Groups:   Candidato [8]
##   Candidato                 n
##   <fct>                 <int>
## 1 Claudia López             6
## 2 Voto en blanco            4
## 3 Gustavo Petro             3
## 4 Sergio Fajardo            3
## 5 Germán Vargas LLeras      1
## 6 Iván Duque                1
## 7 Jorge Enrique Robledo     1
## 8 Piedad Córdoba            1
# Número de participantes por Estado
Deptos <- MyDf %>% 
          group_by(Depto) %>% 
          count(Depto, sort = TRUE)
Deptos
## # A tibble: 7 x 2
## # Groups:   Depto [7]
##   Depto               n
##   <fct>           <int>
## 1 Antioquia           8
## 2 Cundinamarca        6
## 3 Valle del Cauca     2
## 4 Atlántico:          1
## 5 Cesar               1
## 6 Córdoba             1
## 7 Santander           1
# Número de participantes por género
sexo <- MyDf %>% 
        group_by(Genero) %>% 
        count(Genero, sort = TRUE)
sexo
## # A tibble: 2 x 2
## # Groups:   Genero [2]
##   Genero     n
##   <fct>  <int>
## 1 Hombre    13
## 2 Mujer      7

Todos os resultados podem ser publicados simultaneamente no Analystats-App.

Sempre que o script R é executado, os gráficos são atualizados com as novas respostas. O DashBoard do formulário pode ser visto em www.analystats.com -> Go to demo -> DataFromGoogleSheet.

Tradução

Veia Também