forked from DecideBienpe/decidebien-desarrollo-shiny
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.R
181 lines (148 loc) · 5.61 KB
/
server.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
library(shiny)
library(dplyr)
library(DT)
library(ggplot2)
# library(grid)
library(stringr)
source("./src/Functions.R")
source("./src/ggraficoresumen.R")
dfVariable <- ReadTableVariable()
load("./Data/sets.RData")
load("./Data/resumen.RData")
resumen.general.variable.choices <- dfVariable$Variable
function(input, output) {
# Reactive para elegir departamento en primera página
IdDepa <- shiny::eventReactive(input$depa, {
getIdDepa(input$depa)
})
# Reactive para filtrado de tabla basado en inputs
datos <- reactive({
# Se asigna el valor de la tabla completa a variable data
data <- data2_desarrollo %>% filter(Cod == IdDepa())
# Filtrado de listas con ex congresistas
if (!is.null(input$ex_congreso)) {
data <- data %>% filter(!(flag_ex1 %in% input$ex_congreso))
}
# Filtrado de listas según temas de género
if (!is.null(input$genero)) {
if (1 %in% input$genero)
data <- data %>% filter(dif > 0)
if (2 %in% input$genero)
data <- data %>% filter(eq1 >= 49)
if (3 %in% input$genero)
data <- data %>% filter(pos_f == 1)
}
# Filtrado de listas con candidatos sentenciados
if (!is.null(input$sentencias)) {
if (1 %in% input$sentencias)
data <- data %>% filter(Sentencia < 1)
if (2 %in% input$sentencias)
data <- data %>% filter(Sentencia2 < 1)
}
# Filtrado de listas con numero 1 designado
if (!is.null(input$designado)) {
if (1 %in% input$designado)
data <- data %>% filter(Designado!=1)
}
return(data)
})
# Primer Tab Panel de primera página: Aplicación de filtros para tabla de partidos filtrada
output$table <- DT::renderDataTable({
# Seleccionando sólo columna con nombres de partidos que pasan los filtros. Es la tabla que ve el usuario
datos() %>%
dplyr::select(Partido) %>%
arrange(Partido) %>%
distinct()%>%
DT::datatable(options = list(pageLength = 20))
})
# Segundo Tab Panel de primera página: Lista filtrada de candidatos
output$table3 <- DT::renderDataTable({
# Seleccionando variables relevantes de datos de candidatos en listas filtradas. Es la tabla que ve el usuario
datos() %>%
dplyr::select(Partido,Candidato,Número,Sexo,
Edad,ConSentencia,Experiencia_Pol,Estudios,
strEstadoExp) %>%
mutate(str_numero = as.character(`Número`),
str_numero = stringr::str_pad(str_numero, width = 2, side = "left", pad = "0")) %>%
arrange(Partido, str_numero)%>%
filter(!strEstadoExp%in%c("EXCLUSION","IMPROCEDENTE"))%>%
dplyr::select(-c("str_numero","strEstadoExp"))%>%
distinct()%>%
DT::datatable(options = list(pageLength = 50))
})
# Título de main panel de primera página: Región
output$Region <-
renderText(paste0({
as.character(Codigos[Codigos$Cod == IdDepa(), 1])
},", número de escaños (",{as.character(Codigos[Codigos$Cod == IdDepa(), 4])},
"). Listas que pasan tus filtros:"))
# Texto de ayuda de main panel de primera página
output$ayuda <-
renderText({
"La primera tabla muestra las listas que pasan tus filtros,
la segunda los candidatos de esas listas que pasan tus filtros.
De los candidatos mostramos la edad, experiencia política previa (Experiencia_Pol),
si tienen sentencia declarada en la hoja de vida o no, y el úlltimo grado de estudios alcanzado" })
# Texto en main panel de primera página: fecha de actualización de data
output$actuali <- renderText({
"Data actualizada al: 2019-12-03"
})
#================================
# 2da pagina - Resumen General
#================================
# Tabla en segunda página: Resumen de partidos con cantidad de ex congresistas. No está relacionada con inputs
output$tableResumen<-DT::renderDataTable({
data=data_frame()
if(input$tprs.variable=="Experiencia_Pol"){
data=t1
}
if(input$tprs.variable=="Sentencias_Penal"){
data=t2
}
if(input$tprs.variable=="Sentencias_otros"){
data=t3
}
if(input$tprs.variable=="ExCongresitas"){
data=resumen%>%filter(ExCongresitas>0)%>%
select(Partido,ExCongresitas)%>%arrange(desc(ExCongresitas))%>%
rename("NúmeroExCongresistas"="ExCongresitas")
}
if(input$tprs.variable=="Mujeres"){
data=t4
}
data
})
# Gráfico de main panel de segunda página: Resumen según variable escogida
rs.variable <- shiny::eventReactive(input$tprs.gobutton, {input$tprs.variable})
output$resumen1<-renderPlot({
p <- ggraficoresumen(variable = rs.variable(), resumen = resumen)
p
}
)
# Mapa de main panel de primera página
#=====================
# Mapa
#=====================
output$Mapa <- renderImage({
# When input$n is 3, filename is ./images/image3.jpeg
filename <- normalizePath(file.path('./www/',paste(input$depa, '.png', sep='')))
# Return a list containing the filename and alt text
list(src = filename,
alt = paste("Image number", input$depa))
}, deleteFile = FALSE)
#=====================
# Analisis bivariado
#=====================
depa <- eventReactive(input$tpAB.gobutton, {input$tpAB.depa})
varX <- shiny::eventReactive(input$tpAB.gobutton, {input$tpAB.variableX})
varY <- shiny::eventReactive(input$tpAB.gobutton, {input$tpAB.variableY})
output$plotbiv <- renderPlot({
g <- getbiv(depa = depa(), varX = varX(), varY = varY())
g
})
source("R/cedula_girafe.R")
# test de cedula
output$cedula <- renderGirafe({
cedula_girafe(datos())
})
}