#Punto 1.

#Creacion campos para BD

#Identidad Usuario
cedula=c(1045789645,1478954785,1457845178,1234567890,987654321,2345678901,3456789012,4567890123,5678901234,6789012345,2023847562,3028475610,4023856710,5029384761,6023847561,7028475613,7080901020,9010203040,2030405060,4050607080)

nombre=c("Andrea","Ana","Manuela", "Mariana","Luis","Juana","Pedro","Isabel","Pedro","Sofía","Maria","Carlos","Sofia","Luis","Sandra","Santiago","Laura","Andrés","María","Camilo")

apellidos=c("Orozco Suarez","Acosta Perez","Pina Rojas","Pérez Hernandez","García Mosquera","González Guzman","Rodríguez Mendoza","Martínez Mora","Sánchez Muñoz","Ramírez Duran","Gómez Zuleta","García Tovar","Sánchez Marin","Ortiz Arcoz","Hernández Puente","López Arcos","González Tamayo","Hernández Merlano","Díaz Franco","Vargas Correa"
)
edad=c(62,45,24,42,17,35,55,48,61,23,16,45,28,17,42,52,28,65,39,56)

sexo=c("F","F","F","F","M","F","M","F","M","F","F","M","F","M","F","M","F","M","F","M")

domicilio=c("Calle 83C#22-90","Calle 5 #7-85","Calle 7#58-96","Calle 1 # 12-34","Carrera 2 # 23-45","Avenida 7 # 12-23","Calle 3 # 45-67","Carrera 4 # 34-56","Avenida 8 # 45-56","Calle 5 # 23-45","Carrera 7 # 12-23","Calle 10 # 32-21","Avenida 3 # 45-12","Carrera 8 # 21-43","Calle 15 # 34-21","Avenida 10 # 56-32","Calle 8 # 15-40","Carrera 12 # 30-50","Calle 15 # 5-15","Carrera 30 # 40-20"
)

ciudad=c("Cali","Bogotá","Medellin ","Bogotá","Medellín","Barranquilla","Cali","Cartagena","Bucaramanga","Cúcuta","Medellín","Cali","Barranquilla","Bogotá","Medellín","Cali","Barranquilla","Pereira","Bucaramanga","Cartagena"
)

departamento=c("Valle del Cauca","Cundinamarca","Antioquia","Cundinamarca","Antioquia","Atlántico","Valle del Cauca","Bolívar","Santander","Norte de Santander","Antioquia","Valle del Cauca","Atlántico","Cundinamarca","Antioquia","Valle del Cauca","Atlántico","Risaralda","Santander","Bolívar"
)

telefono= c(3147854789,3147841457,3478547145,3125551234,3104445678,3186667890,3207778901,3158889012,3179990123,3131112345,3108765432,3157891234,3187654321,3112345678,3108765432,3157891234,3004567890,3106785432,3159876543,3507896543
)
HistoClinico= c(1457,1000,1000,1234,5678,9012,2345,6789,2123,3456,2345,3765,4678,5987,6325,7689,1004,1005,1006,1007)

fumante=c("S","N","S","N","N","N","N","S","S","N","N","S","N","N","N","S","S","N","S","N")

#Ingreso a entidad
procedencia=c("Cali","Bogotá","Medellin","Bogotá","Cali","Bogotá","Medellín","Cali","Bogotá","Barranquilla","Medellín","Bogotá","Cali","Bogotá","Medellín","Bogotá","Santa Marta","Pereira","Bogotá","Cartagena")

fechaIngreso= c("12/02/2022","1/02/2023","25/03/2023","24/01/2023","7/01/2022","6/01/2022","4/01/2022","5/01/2022","1/06/2022","5/07/2022","13/01/2023","16/01/2023","20/01/2023","24/01/2023","2/02/2023","10/02/2023","4/01/2022","5/01/2022","6/01/2022","7/01/2022"
)

numPiso=c(5,3,7,3,6,4,7,5,2,6,6,5,3,8,7,2,6,4,1,3)

numCama=c(501,302,705,205,403,308,507,403,102,402,503,305,209,708,605,102,17,14,1,10
)

causaIngreso=c("Covid","Accidente de tráfico","Infección respiratoria","Covid","Fractura","Infección urinaria","Hipertensión","Fractura","Infarto","Covid","Infección urinaria","Covid","Accidente de tráfico","Fractura","Covid","Infarto","Infección respiratoria","Hipertensión","Gripe","Fractura"
)

#Creacion BD

baseDeDatos=data.frame(cedula,nombre,apellidos,edad,sexo,domicilio,ciudad,departamento,telefono,HistoClinico,fumante, procedencia, fechaIngreso,numPiso,numCama, causaIngreso)

BD=cbind(cedula,nombre,apellidos,edad,sexo,domicilio,ciudad,departamento,telefono,HistoClinico,fumante, procedencia, fechaIngreso,numPiso,numCama, causaIngreso)

#Punto 2

#a) Mostrar gráficamente la cantidad de pacientes hombres y cantidad de pacientes mujeres

e1= sum(sexo=="M")#Cantidad de hombres
e2= sum(sexo=="F")#Cantidad de mujeres

et=c(e1,e2)
barplot(et, main = "Cantidad de pacientes hombres y mujeres",axes = TRUE, names.arg = c("Hombres", "Mujeres"), col = c("#2ECCFA","#DF01A5"), xlab="Género", ylab= "Cantidad Pacientes")

#b) Mostrar edad y si es fumante o no 

table(fumante,edad)
##        edad
## fumante 16 17 23 24 28 35 39 42 45 48 52 55 56 61 62 65
##       N  1  2  1  0  1  1  0  2  1  0  0  1  1  0  0  1
##       S  0  0  0  1  1  0  1  0  1  1  1  0  0  1  1  0
#Gráfico 
d=table(fumante, edad)
etiquetas=sort(unique(edad), decreasing = FALSE)
barplot(d, main = "Pacientes fumadores y no fumadores segun edad",axes = TRUE, names.arg = etiquetas, col = c("#EE2C2C","#CAFF70"), xlab="Edades", ylab= "N° de pacientes")
legend("topright", legend= c("No son fumadores", "Son fumadores"),fill =c("#EE2C2C","#CAFF70"), cex=0.8)

#Se escoge realizar un gráfico de barras apiladas debido que este nos permite identificar las edades; ademas, podemos visualizar el número de ocurrencias de personas fumantes y no fumantes dentro de los rangos de edades. 
#c) Pacientes por piso, divididos por sexo

table(sexo, numPiso)
##     numPiso
## sexo 1 2 3 4 5 6 7 8
##    F 1 0 3 1 2 3 2 0
##    M 0 2 1 1 1 1 1 1
#Gráfico
d=table(sexo, numPiso)
etiquetas=sort(unique(numPiso), decreasing = FALSE)
barplot(d, main = "Pacientes por sexo divididos por piso",axes = TRUE, names.arg = etiquetas, col = c("#DF01A5","#2ECCFA"), xlab="N° de piso", ylab="N° de pacientes por piso")
legend("topright", legend= c("Mujeres", "Hombres"),fill =c("#DF01A5","#2ECCFA"), cex=0.8)

#Utilizamos un grafico igual al anterior punto debido que nos permite identificar en todas los pisos registrados, y podemos visualizar el número de ocurrencias tanto de pacientes masculinos y pacientes femeninos en cada piso. 
#d) Edad y causa de ingreso 

table(causaIngreso,edad)
##                         edad
## causaIngreso             16 17 23 24 28 35 39 42 45 48 52 55 56 61 62 65
##   Accidente de tráfico    0  0  0  0  1  0  0  0  1  0  0  0  0  0  0  0
##   Covid                   0  0  1  0  0  0  0  2  1  0  0  0  0  0  1  0
##   Fractura                0  2  0  0  0  0  0  0  0  1  0  0  1  0  0  0
##   Gripe                   0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0
##   Hipertensión            0  0  0  0  0  0  0  0  0  0  0  1  0  0  0  1
##   Infarto                 0  0  0  0  0  0  0  0  0  0  1  0  0  1  0  0
##   Infección respiratoria  0  0  0  1  1  0  0  0  0  0  0  0  0  0  0  0
##   Infección urinaria      1  0  0  0  0  1  0  0  0  0  0  0  0  0  0  0
#Grafico
etiquetas=sort(unique(edad), decreasing = FALSE)
d=table(causaIngreso,edad)
colores= c("#F8EE1C","#FFA500","#F8231C","#FF6EB4","#AB82FF","#4876FF","#C6E2FF","#CDC9C9")


barplot(d, main = "Causas de ingreso/Edades",axes = TRUE, names.arg = etiquetas, col = colores, xlab="Edades de los pacientes en la Base de Datos", ylab= "N° de pacientes")
legend("topright", legend = sort(unique(causaIngreso), decreasing= FALSE), fill = colores,cex=0.48)

#e) Promedio de edad (H,M)

#Almacena
Hombres= edad[baseDeDatos$sexo=="M"]

#Se muestra la edad promedio de hombres 
promHombres= mean(Hombres)

#Almacena
Mujeres= edad[baseDeDatos$sexo=="F"]

#Se muestra la edad promedio de mujeres
promMujeres= mean(Mujeres)

PromHM= rbind(promMujeres,promHombres)
p=table(promMujeres,promHombres)
colores= c("#DF01A5","#2ECCFA")

pie(PromHM, labels = paste0(PromHM), main = "Promedio edades", col=colores)
legend("topright", legend = sort(unique(sexo), decreasing= FALSE), fill = colores,cex=1)

#f)

#Establecemos las cédulas a consultar. 
id1=1234567890
id2=5678901234
id3=4050607080

#Extraemos únicamente la información de los id anteriores 
#Muestra la informacion indepentiente de los id anteriores
p1=subset(BD, BD[,1]==id1) #Para la persona1
p2=subset(BD, BD[,1]==id2)#Para la persona2
p3=subset(BD, BD[,1]==id3)#Para la persona3

#g) Datos de 3 pacientes por identidad 

#Establecemos las cédulas a consultar. 
id4=1234567890
id5=5678901234
id6=4050607080

#Extraemos únicamente la información de los id anteriores
p4=subset(BD, BD[,1]==id4) #Para la persona1
p5=subset(BD, BD[,1]==id5)#Para la persona2
p6=subset(BD, BD[,1]==id6)#Para la persona3

#Unificamos toda la información dentro de una sola tabla
TresPacientes= rbind(p4, p5, p6)

#h) Lista de causas de ingreso

table(causaIngreso)
## causaIngreso
##   Accidente de tráfico                  Covid               Fractura 
##                      2                      5                      4 
##                  Gripe           Hipertensión                Infarto 
##                      1                      2                      2 
## Infección respiratoria     Infección urinaria 
##                      2                      2
#Puede realizarse una lista exclusiva de los casos de ingreso y adicional un histograma con la frecuencia de cada una de ellas 

indicadores= table(causaIngreso)
etiquetas=unique(causaIngreso)


barplot(indicadores, main = "Causas de ingreso",axes = TRUE, names.arg = indicadores, col = c("#F8EE1C","#FFA500","#F8231C","#FF6EB4","#AB82FF","#4876FF","#C6E2FF","#CDC9C9"), xlab="Causas de ingreso (Organizada por color)", ylab="N° de ocurrencias por causas de ingreso.")

legend("topright", legend = etiquetas, fill = c("#F8EE1C","#FFA500","#F8231C","#FF6EB4","#AB82FF","#4876FF","#C6E2FF","#CDC9C9"),cex=0.45)

#Punto 3, exportar la base de datos a excel.

library(openxlsx)
write.xlsx(baseDeDatos,"Taller3-LauraLopez.xlsx",rownames=FALSE)