---
title: "Resultados prueba piloto"
author: "Raúl Godínez"
output:
flexdashboard::flex_dashboard:
orientation: rows
social: menu
source_code: embed
---
```{r setup, include=FALSE}
library(stargazer)
library(gsheet)
library(plotly)
library(flexdashboard)
library(RCurl)
library(ggplot2)
library(plyr)
library(dplyr)
library(umx)
library(psych)
library(papeR)
library(Hmisc)
library(foreign)
library(nnet)
library(DT)
url = 'docs.google.com/spreadsheets/d/1M5AAq5lBdTkF7vokwmR01ep3yr1sIN-ECHaWhM_8UAc/edit?usp=sharing'
df = gsheet2tbl(url)
View(df)
df = df[-1]
colnames(df) = c("Q1", "Q2","Q3","Q4", "Q5", "Q6", "Q7", "Q8", "Q9", "Q10","Q11", "Q12","Q13" ,"Q14", "Q15"
,"Q16" , "Q17", "Q18", "Q19","Q20", "Q21", "Q22","Q23", "Q24", "Q25", "Q26","Q27","Q28",
"Q29","Q30","Q31","Q32")
var.labels=c(Q1="Nombre",
Q2="Edad",
Q3="Género" ,
Q4="Departamento de origen" ,
Q5="Departamento de residencia" ,
Q6="Tipo de sistema sanitario",
Q7="Nivel educativo alcanzado" ,
Q8="Empleo",
Q9="Ingresos mensuales promedio" ,
Q10="Clasificación del empleo",
Q11="¿Cómo considera que está su salud física?",
Q12 ="Nivel de estrés",
Q13 = "Sintomas de estrés",
Q14= "Peso",
Q15 ="Estatura",
Q16="Enfermedad de presion",
Q17="¿Usted padece de diábetes?",
Q18="¿Usted padece de alguna otra enfermedad crónica?",
Q19="Enfermedad crónica",
Q20="Alcohol por semana" ,
Q21="¿Qué tipo de alcohol consume?",
Q22="Cuando toma, ¿qué cantidad consume?" ,
Q23="¿Cuántos cigarros consume por día?",
Q24="Gaseosa por semana?",
Q25= "Cuando toma, ¿qué cantidad consume?_1",
Q26="Veces por semana del café",
Q27="Cantidad de café en ml",
Q28= "Cantidad de agua que consume en un día",
Q29="¿Cada cuánto come fruta?",
Q30="¿Cuántas veces a la semana come vegetales?",
Q31= "¿Cuántas veces a la semana realiza (al menos) 30 minutos de ejercicio?",
Q32="¿De cuántos miembros es su familia?")
label(df) = as.list(var.labels[match(names(df), names(var.labels))])
#######################################################
#Colores
myPal <- c(
rgb(224, 254, 254, maxColorValue = 255),
rgb(199, 206, 234, maxColorValue = 255),
rgb(255, 218, 193, maxColorValue = 255),
rgb(255, 154, 162, maxColorValue = 255),
rgb(255, 255, 216, maxColorValue = 255),
rgb(181, 234, 215, maxColorValue = 255),
rgb(229, 178, 204, maxColorValue = 255),
rgb(92, 191, 194, maxColorValue = 255),
rgb(250, 210, 169, maxColorValue = 255),
rgb(180, 211, 117, maxColorValue = 255)
)
##############################################
#Conversión de variables para evitar errores de digitación
df$Q1 = as.character(df$Q1)
df$Q2 = as.numeric(df$Q2)
df$Q3 = as.factor(df$Q3)
df$Q4 = as.factor(df$Q4)
df$Q5 = as.factor(df$Q5)
df$Q6 = as.factor(df$Q6)
df$Q7 = as.factor(df$Q7)
df$Q8 = as.factor(df$Q8)
df$Q9 = as.numeric(df$Q9)
df$Q10 = as.factor(df$Q10)
df$Q11 = as.factor(df$Q11)
df$Q12 = as.numeric(df$Q12) #Estres
df$Q13 = as.character(df$Q13)
df$Q14 = as.numeric(df$Q14)
df$Q15 = as.numeric(df$Q15)
df$Q16 = as.factor(df$Q16)
df$Q17 = as.factor(df$Q17)
df$Q18 = as.factor(df$Q18)
df$Q19 = as.character(df$Q19)
df$Q20 = as.numeric(df$Q20)
df$Q21 = as.factor(df$Q21)
df$Q22 = as.numeric(df$Q22)
df$Q23 = as.numeric(df$Q23)
df$Q24 = as.numeric(df$Q24)
df$Q25 = as.numeric(df$Q25)
df$Q26 = as.numeric(df$Q26)
df$Q27 = as.numeric(df$Q27)
df$Q28 = as.numeric(df$Q28)
df$Q29 = as.numeric(df$Q29)
df$Q30 = as.numeric(df$Q30)
df$Q31 = as.numeric(df$Q31)
df$Q32 = as.numeric(df$Q32)
#Crear el BMI
df = df %>%
mutate(df,BMI = (Q14/2.2)/(Q15/100)^2)
```
# Introducción
## Row
### Número de encuestas
```{r}
comments <- count(df)
valueBox(comments, icon = "bar-chart-outline")
```
## Row
### Género de los encuestados
```{r}
library(ggthemes)
library(ggrepel)
library(cowplot)
plotdata1 = df %>%
count(Q3) %>%
arrange(desc(Q3))
fig1 <- plot_ly(plotdata1, labels = ~Q3, values = ~n, type = 'pie',
marker = list(colors = c("#e3120b","#1F80A6"),
line = list(color = '#FFFFFF', width = 1)))
fig1 <- fig1 %>% layout(title = 'Género de los encuestados',
xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE))
ggplotly(fig1)
```
### Distribución de la edad
```{r}
df1 = select(df,Q2,Q3)
AgesFactor <- ordered( cut(df1$Q2, breaks = c(15,seq(20,80,5)),
include.lowest = TRUE))
df1$Q2 <- AgesFactor
df1 = df1 %>%
group_by(Q2) %>%
count(Q3) %>%
arrange(desc(Q3))
names(df1) = c("Edad","Género","n")
gender = ggplot(df1, aes(x = Edad, fill = Género,
y = ifelse(test = Género == "Masculino",
yes = -n, no = n))) +
geom_bar(stat = "identity") +
scale_y_continuous(labels = abs, limits = max(df1$n) * c(-1,1)) +
coord_flip()+labs(title = "Distribución por edad y sexo", x = "Edad", y = "Porcentaje de la población") + scale_colour_manual(values = c("#3BD9D9","#1F80A6"),
aesthetics = c("colour", "fill"))+theme_economist()
gender
```
# Parte 1
## Row
### Salarios expresados en córdobas
```{r}
salary = df %>%
group_by(Q10,Q3) %>%
summarise_at(vars(Q9),
list(Media = mean))
names(salary) = c("Tipo de empleo","Género","Salario medio")
knitr::kable(salary)
```
### Empleo formal vs informal
```{r}
library(ggthemes)
library(ggrepel)
library(cowplot)
plotdata = df %>%
count(Q10) %>%
arrange(desc(Q10))
fig <- plot_ly(plotdata, labels = ~Q10, values = ~n, type = 'pie',
marker = list(colors = c("#3BD9D9","#1F80A6"),
line = list(color = '#FFFFFF', width = 1)))
fig <- fig %>% layout(title = 'Tipo de empleo de los encuestados',
xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE))
ggplotly(fig)
```
## Row
### Salud autoevaluada
```{r}
graph2 = ggplot(df,
aes(x=Q11,
fill=Q10))+geom_bar(position = "fill")+labs(y="Proporción",x="",
fill="Empleo")+theme_minimal()+
scale_fill_manual(values = c("#1F80A6","#e3120b"))
ggplotly(graph2)
```
### Problemas de presión arterial
```{r}
graph3 = ggplot(df,
aes(x=Q16,
fill=Q10))+geom_bar(position = "fill")+labs(y="Proporción",x="",
fill="Empleo")+theme_minimal()+
scale_fill_manual(values = c("#1F80A6","#e3120b"))
ggplotly(graph3)
```
# Parte 2
## Row
### Salario vs Edad
```{r}
se = select(df,Q2,Q9,Q5)
names(se) = c("Edad","Ingreso","residencia")
graph = ggplot(se, aes(x=Edad,
y= Ingreso)) + geom_point(aes(color = residencia)) + geom_point(aes(color = residencia),
shape=21,
fill= "White")
g2 <- graph + geom_point(aes(color = residencia),
shape=21,
fill= "White",
size =2,
stroke=1)
g3 = g2 + geom_smooth(method = "lm",
formula = y ~log(x), se = FALSE)
g3 <- g2+scale_color_manual(values = c("#1F80A6", "#A1282A", "#3BD9D9", "#208F84",
"#9ae5de", "#FA9974","#FA2597","#e3120b"))+ theme(legend.position="top")
g4 <- g3 + theme(panel.grid.minor = element_blank(),
panel.grid.major = element_line(color = "#d4dddd", size = 0.5),
panel.grid.major.x = element_blank(),
panel.background = element_blank(),
line = element_blank())
ggplotly(g4)
```
### Nivel educativo de los encuestados
```{r}
educated = select(df,Q7,Q10)
names(educated) = c("Educación","Empleo")
graph6 = ggplot(educated,
aes(x=Educación,
fill=Empleo))+geom_bar(position = "fill")+labs(y="Proporción",x="",
fill="Empleo")+theme_minimal()+
scale_fill_manual(values = c("#1F80A6","#e3120b"))
ggplotly(graph6)
```
## Row
### Salarios por departamento
```{r}
departamentos = df %>%
group_by(Q5,Q10,Q3) %>%
summarise_at(vars(Q9),
list(Salario = mean))
names(departamentos) = c("Residencia","Tipo de empleo","Género","Salario")
knitr::kable(departamentos)
```
### Tipo de sistema de salud vs tipo de empleo
```{r}
health = select(df,Q6,Q7)
names(health) = c("Sistema","Educación")
#Declaramos los factores para clasificar
health$Sistema = factor(health$Sistema,
levels = levels(health$Sistema),
labels = c("Privada",
"Privada y seguro",
"Pública",
"Pública y seguro",
"Pública y privada","Seguro"))
graph7 = ggplot(health,
aes(x=Sistema,
fill=Educación))+geom_bar(position = "fill")+labs(y="Proporción",x="",
fill="Educación")+theme_minimal()+
scale_fill_manual(values = c("#1F80A6","#3BD9D9","#FF8F6A","#e3120b"))+theme(plot.subtitle = element_text(family = "Helvetica"),
plot.caption = element_text(family = "Helvetica",
size = 8, colour = "gray64", hjust = 0),
axis.line = element_line(size = 0.4,
linetype = "solid"), axis.ticks = element_line(size = 0.3,
linetype = "blank"), panel.grid.major = element_line(colour = "gray80",
linetype = "blank"), panel.grid.minor = element_line(colour = "gray80",
size = 0.4), axis.text = element_text(family = "AvantGarde",
size = 9, colour = "gray45"), axis.text.x = element_text(family = "AvantGarde",
size = 9, colour = "gray45"), plot.title = element_text(family = "Helvetica",
size = 15, face = "bold"), legend.title = element_text(family = "Helvetica"),
panel.background = element_rect(fill = "white"),
plot.background = element_rect(fill = "white"),
legend.position = "top", legend.direction = "horizontal") +labs(title = "Sistema sanitario", x = NULL,
y = NULL, fill = "Nivel educativo", subtitle = "Sistema de salud utilizado por los encuestados en base a su nivel de educación",
caption = "Fuente: Elaboración propia en base a datos recolectados en la encuesta")
ggplotly(graph7)
```
# Parte 3
## Row
### Niveles de estrés
```{r}
estres = select(df,Q12,Q10)
names(estres) = c("Estrés","Empleo")
library(ggpol)
library(scales)
graph8 = ggplot(estres,
aes(x = factor(Empleo,
labels = c("Empleo formal",
"Empleo informal")),
y = Estrés,
fill =Empleo))+ geom_boxjitter(color = "black",
jitter.color = "darkgrey",
errorbar.draw = TRUE)+
labs(title = "Nivel de estrés según tipo de empleo",
y = "",
x= "") + theme_minimal()+theme(legend.position = "none")
graph8
```
### Síntomas del estrés
```{r}
library(ggwordcloud)
sintomas =select(df,Q13)
sintomas = filter(sintomas,Q13 != "Nada")
sinto <- within(data=sintomas, Q13<-data.frame
(do.call('rbind',strsplit(as.character(Q13),", ",fixed=TRUE))))
sinto = c(sinto$Q13$X1,sinto$Q13$X2)
sinto = data.frame(sinto)
sinto = sinto %>%
count(sinto) %>%
mutate(prop = round(n*100 / sum(n), 1),
lab.ypos = cumsum(prop) -0.5 *prop)
cloud = ggplot(sinto, aes(label = sinto, size = n)) +
geom_text_wordcloud() +
scale_size_area(max_size = 20) +
theme_economist()
cloud
```
# Parte 4
## Row
### Consumo de café por año en litros
```{r}
cafe = select(df,Q5,Q10,Q26,Q27)
cafe = cafe %>%
mutate(cafe, cafe_anual = (Q26*Q27*52)/1000)
cafe = cafe %>%
group_by(Q5,Q10) %>%
summarise_at(vars(cafe_anual),
list(Consumo_anual_medio = mean))
names(cafe) = c("Residencia","Empleo","Consumo")
knitr::kable(cafe)
```
### Consumo de alcohol por año en litros
```{r}
licor = select(df,Q5,Q10,Q20,Q21,Q22)
licor = licor %>%
mutate(licor, licor_anual = (Q20*Q22*52)/1000)
licor = licor %>%
group_by(Q5,Q10) %>%
summarise_at(vars(licor_anual),
list(Consumo_anual_medio = mean))
names(licor) = c("Residencia","Empleo","Consumo")
knitr::kable(licor)
```
## Row
### Consumo de gaseosa por año en litros
```{r}
coca = select(df,Q5,Q10,Q24,Q25)
coca = coca %>%
mutate(coca, coca_anual = (Q24*Q25*52)/1000)
coca = coca %>%
group_by(Q5,Q10) %>%
summarise_at(vars(coca_anual),
list(Consumo_anual_medio = mean))
names(coca) = c("Residencia","Empleo","Consumo")
knitr::kable(coca)
```
### Número de veces que consume frutas y verduras en un año
```{r}
ver = select(df,Q5,Q10,Q29,Q30)
ver = ver %>%
mutate(ver, ver_anual = (Q29*52)) %>%
mutate(ver, fru_anual = Q30*52)
ver = ver %>%
group_by(Q5,Q10) %>%
summarise_at(vars(ver_anual,fru_anual),
list(Consumo_anual_medio = mean))
names(ver) = c("Residencia","Tipo","Verdura","Fruta")
ver$Verdura = round(ver$Verdura,0)
ver$Fruta = round(ver$Verdura,0)
knitr::kable(ver)
```