library(ggplot2)
library(openxlsx)
  1. Construya una base de datos de veinte (20) historias clínicas con los siguientes campos:

1.1 Identidad de Pacientes: (Número de Cédula, Nombres del paciente, Apellidos del paciente, Edad, Sexo, Domicilio, Ciudad, Departamento, Número de teléfono, Número de historial clínico, Fumante(S/N))

# Crear un data frame con 20 historias clínicas
historias_clinicas = data.frame(
  Numero_de_Cedula = c("1234567890", "2345678901", "3456789012", "4567890123", "5678901234",
                        "6789012345", "7890123456", "8901234567", "9012345678", "0123456789",
                        "1122334455", "2233445566", "3344556677", "4455667788", "5566778899",
                        "6677889900", "7788990011", "8899001122", "9900112233", "0011223344"),
  Nombres = c("Camila", "Maria", "Pedro", "Laura", "Carlos",
              "Ana", "Luis", "Sofia", "Diego", "Elena",
              "Julio", "Daniela", "Andres", "Carolina", "Gabriel",
              "Valeria", "Pablo", "Isabel", "Martina", "Fernanda"),
  Apellidos = c("Perez", "Gomez", "Lopez", "Martinez", "Rodriguez",
                "Gonzalez", "Hernandez", "Diaz", "Sanchez", "Ramirez",
                "Torres", "Fernandez", "Vargas", "Rojas", "Moreno",
                "Castro", "Acosta", "Ortega", "Jimenez", "Sosa"),
  Edad = c(35, 45, 28, 35, 22, 50, 41, 19, 37, 42,
           55, 33, 47, 26, 39, 48, 31, 20, 22, 29),
  Sexo = c("F", "F", "M", "F", "M",
           "F", "M", "F", "M", "F",
           "M", "F", "M", "F", "M",
           "F", "M", "F", "F", "F"),
  Domicilio = c("Calle 123", "Av. Principal", "Carrera 45", "Diagonal 67", "Calle 89",
                "Av. Libertador", "Carrera 12", "Diagonal 34", "Calle 56", "Av. Bolivar",
                "Carrera 78", "Diagonal 90", "Calle 23", "Av. Sucre", "Carrera 56",
                "Diagonal 12", "Calle 45", "Av. Miranda", "Carrera 67", "Diagonal 78"),
  Ciudad = c("Bogota", "Medellin", "Cali", "Barranquilla", "Cartagena",
             "Santa Marta", "Bucaramanga", "Pereira", "Manizales", "Cucuta",
             "Ibague", "Pasto", "Villavicencio", "Neiva", "Armenia",
             "Popayan", "Tunja", "Riohacha", "Valledupar", "Quibdo"),
  Departamento = c("Cundinamarca", "Antioquia", "Valle del Cauca", "Atlantico", "Bolivar",
                   "Magdalena", "Santander", "Risaralda", "Caldas", "Norte de Santander",
                   "Tolima", "Narino", "Meta", "Huila", "Quindio",
                   "Cauca", "Boyaca", "La Guajira", "Cesar", "Choco"),
  Numero_de_telefono = c("1234567890", "2345678901", "3456789012", "4567890123", "5678901234",
                          "6789012345", "7890123456", "8901234567", "9012345678", "0123456789",
                          "1122334455", "2233445566", "3344556677", "4455667788", "5566778899",
                          "6677889900", "7788990011", "8899001122", "9900112233", "0011223344"),
  Numero_de_historial_clinico = c(1, 2, 3, 4, 5,
                                   6, 7, 8, 9, 10,
                                   11, 12, 13, 14, 15,
                                   16, 17, 18, 19, 20),
  Fumante = c("S", "N", "N", "S", "N",
              "N", "S", "N", "N", "S",
              "N", "S", "N", "N", "S",
              "N", "S", "N", "N", "S")
)

# Mostrar la base de datos
print(historias_clinicas)
##    Numero_de_Cedula  Nombres Apellidos Edad Sexo      Domicilio        Ciudad
## 1        1234567890   Camila     Perez   35    F      Calle 123        Bogota
## 2        2345678901    Maria     Gomez   45    F  Av. Principal      Medellin
## 3        3456789012    Pedro     Lopez   28    M     Carrera 45          Cali
## 4        4567890123    Laura  Martinez   35    F    Diagonal 67  Barranquilla
## 5        5678901234   Carlos Rodriguez   22    M       Calle 89     Cartagena
## 6        6789012345      Ana  Gonzalez   50    F Av. Libertador   Santa Marta
## 7        7890123456     Luis Hernandez   41    M     Carrera 12   Bucaramanga
## 8        8901234567    Sofia      Diaz   19    F    Diagonal 34       Pereira
## 9        9012345678    Diego   Sanchez   37    M       Calle 56     Manizales
## 10       0123456789    Elena   Ramirez   42    F    Av. Bolivar        Cucuta
## 11       1122334455    Julio    Torres   55    M     Carrera 78        Ibague
## 12       2233445566  Daniela Fernandez   33    F    Diagonal 90         Pasto
## 13       3344556677   Andres    Vargas   47    M       Calle 23 Villavicencio
## 14       4455667788 Carolina     Rojas   26    F      Av. Sucre         Neiva
## 15       5566778899  Gabriel    Moreno   39    M     Carrera 56       Armenia
## 16       6677889900  Valeria    Castro   48    F    Diagonal 12       Popayan
## 17       7788990011    Pablo    Acosta   31    M       Calle 45         Tunja
## 18       8899001122   Isabel    Ortega   20    F    Av. Miranda      Riohacha
## 19       9900112233  Martina   Jimenez   22    F     Carrera 67    Valledupar
## 20       0011223344 Fernanda      Sosa   29    F    Diagonal 78        Quibdo
##          Departamento Numero_de_telefono Numero_de_historial_clinico Fumante
## 1        Cundinamarca         1234567890                           1       S
## 2           Antioquia         2345678901                           2       N
## 3     Valle del Cauca         3456789012                           3       N
## 4           Atlantico         4567890123                           4       S
## 5             Bolivar         5678901234                           5       N
## 6           Magdalena         6789012345                           6       N
## 7           Santander         7890123456                           7       S
## 8           Risaralda         8901234567                           8       N
## 9              Caldas         9012345678                           9       N
## 10 Norte de Santander         0123456789                          10       S
## 11             Tolima         1122334455                          11       N
## 12             Narino         2233445566                          12       S
## 13               Meta         3344556677                          13       N
## 14              Huila         4455667788                          14       N
## 15            Quindio         5566778899                          15       S
## 16              Cauca         6677889900                          16       N
## 17             Boyaca         7788990011                          17       S
## 18         La Guajira         8899001122                          18       N
## 19              Cesar         9900112233                          19       N
## 20              Choco         0011223344                          20       S

1.2. Proceso de Ingreso a la entidad: (Procedencia, Fecha de ingreso, Número de piso, Número de cama, Causa de Ingreso)

# Añadir los campos de Proceso de Ingreso a la base de datos existente
historias_clinicas$Procedencia = c("Urgencias", "Consulta Externa", "Referencia de otro centro", "Urgencias", "Consulta Externa","Consulta Externa", "Urgencias", "Consulta Externa", "Referencia de otro centro","Urgencias","Urgencias", "Consulta Externa", "Consulta Externa", "Urgencias", "Consulta Externa",     "Consulta Externa", "Urgencias", "Consulta Externa", "Referencia de otro centro", "Urgencias")

historias_clinicas$Fecha_de_ingreso = as.Date(c("2022-01-01", "2022-02-15", "2022-03-10", "2022-04-05","2022-05-20","2022-06-12", "2022-07-30", "2022-08-25", "2022-09-18", "2022-10-02","2022-11-15", "2022-12-20", "2023-01-02", "2023-02-17", "2023-03-08","2023-04-12", "2023-05-25", "2023-06-18", "2023-07-05", "2023-08-30"))

historias_clinicas$Numero_de_piso = c(1, 3, 2, 4, 1, 2, 3, 4, 1, 2,
                                       3, 4, 1, 2, 3, 4, 1, 2, 3, 4)

historias_clinicas$Numero_de_cama = c(101, 301, 202, 402, 102, 202, 303, 404, 103, 202,
                                        303, 401, 101, 203, 305, 403, 102, 202, 302, 404)

historias_clinicas$Causa_de_ingreso = c("Dolor abdominal", "Fiebre", "Fractura de brazo", "Accidente de tráfico", "Cefalea","Fiebre", "Infarto agudo de miocardio", "Dolor abdominal", "Gripe", "Neumonía",   "Dolor torácico", "Gripe", "Intoxicación alimentaria", "Fiebre", "Neumonía","Dolor abdominal", "Fractura de pierna", "Problema respiratorio", "Dolor abdominal", "Gripe")

# Mostrar la base de datos actualizada
print(historias_clinicas)
##    Numero_de_Cedula  Nombres Apellidos Edad Sexo      Domicilio        Ciudad
## 1        1234567890   Camila     Perez   35    F      Calle 123        Bogota
## 2        2345678901    Maria     Gomez   45    F  Av. Principal      Medellin
## 3        3456789012    Pedro     Lopez   28    M     Carrera 45          Cali
## 4        4567890123    Laura  Martinez   35    F    Diagonal 67  Barranquilla
## 5        5678901234   Carlos Rodriguez   22    M       Calle 89     Cartagena
## 6        6789012345      Ana  Gonzalez   50    F Av. Libertador   Santa Marta
## 7        7890123456     Luis Hernandez   41    M     Carrera 12   Bucaramanga
## 8        8901234567    Sofia      Diaz   19    F    Diagonal 34       Pereira
## 9        9012345678    Diego   Sanchez   37    M       Calle 56     Manizales
## 10       0123456789    Elena   Ramirez   42    F    Av. Bolivar        Cucuta
## 11       1122334455    Julio    Torres   55    M     Carrera 78        Ibague
## 12       2233445566  Daniela Fernandez   33    F    Diagonal 90         Pasto
## 13       3344556677   Andres    Vargas   47    M       Calle 23 Villavicencio
## 14       4455667788 Carolina     Rojas   26    F      Av. Sucre         Neiva
## 15       5566778899  Gabriel    Moreno   39    M     Carrera 56       Armenia
## 16       6677889900  Valeria    Castro   48    F    Diagonal 12       Popayan
## 17       7788990011    Pablo    Acosta   31    M       Calle 45         Tunja
## 18       8899001122   Isabel    Ortega   20    F    Av. Miranda      Riohacha
## 19       9900112233  Martina   Jimenez   22    F     Carrera 67    Valledupar
## 20       0011223344 Fernanda      Sosa   29    F    Diagonal 78        Quibdo
##          Departamento Numero_de_telefono Numero_de_historial_clinico Fumante
## 1        Cundinamarca         1234567890                           1       S
## 2           Antioquia         2345678901                           2       N
## 3     Valle del Cauca         3456789012                           3       N
## 4           Atlantico         4567890123                           4       S
## 5             Bolivar         5678901234                           5       N
## 6           Magdalena         6789012345                           6       N
## 7           Santander         7890123456                           7       S
## 8           Risaralda         8901234567                           8       N
## 9              Caldas         9012345678                           9       N
## 10 Norte de Santander         0123456789                          10       S
## 11             Tolima         1122334455                          11       N
## 12             Narino         2233445566                          12       S
## 13               Meta         3344556677                          13       N
## 14              Huila         4455667788                          14       N
## 15            Quindio         5566778899                          15       S
## 16              Cauca         6677889900                          16       N
## 17             Boyaca         7788990011                          17       S
## 18         La Guajira         8899001122                          18       N
## 19              Cesar         9900112233                          19       N
## 20              Choco         0011223344                          20       S
##                  Procedencia Fecha_de_ingreso Numero_de_piso Numero_de_cama
## 1                  Urgencias       2022-01-01              1            101
## 2           Consulta Externa       2022-02-15              3            301
## 3  Referencia de otro centro       2022-03-10              2            202
## 4                  Urgencias       2022-04-05              4            402
## 5           Consulta Externa       2022-05-20              1            102
## 6           Consulta Externa       2022-06-12              2            202
## 7                  Urgencias       2022-07-30              3            303
## 8           Consulta Externa       2022-08-25              4            404
## 9  Referencia de otro centro       2022-09-18              1            103
## 10                 Urgencias       2022-10-02              2            202
## 11                 Urgencias       2022-11-15              3            303
## 12          Consulta Externa       2022-12-20              4            401
## 13          Consulta Externa       2023-01-02              1            101
## 14                 Urgencias       2023-02-17              2            203
## 15          Consulta Externa       2023-03-08              3            305
## 16          Consulta Externa       2023-04-12              4            403
## 17                 Urgencias       2023-05-25              1            102
## 18          Consulta Externa       2023-06-18              2            202
## 19 Referencia de otro centro       2023-07-05              3            302
## 20                 Urgencias       2023-08-30              4            404
##              Causa_de_ingreso
## 1             Dolor abdominal
## 2                      Fiebre
## 3           Fractura de brazo
## 4        Accidente de tráfico
## 5                     Cefalea
## 6                      Fiebre
## 7  Infarto agudo de miocardio
## 8             Dolor abdominal
## 9                       Gripe
## 10                   Neumonía
## 11             Dolor torácico
## 12                      Gripe
## 13   Intoxicación alimentaria
## 14                     Fiebre
## 15                   Neumonía
## 16            Dolor abdominal
## 17         Fractura de pierna
## 18      Problema respiratorio
## 19            Dolor abdominal
## 20                      Gripe
  1. Por medio de informe gráfico clasifique por:
  1. Pacientes mujeres y Hombres
# Contar el número de pacientes por género
pacientes_por_genero = table(historias_clinicas$Sexo)

# Crear un data frame con los resultados
df_pacientes_genero = data.frame(Genero = names(pacientes_por_genero),
                                  Cantidad = as.numeric(pacientes_por_genero))

# Graficar el número de pacientes por género
ggplot(df_pacientes_genero, aes(x = Genero, y = Cantidad, fill = Genero)) +
  geom_bar(stat = "identity") +
  labs(title = "Cantidad de pacientes por género",
       x = "Género",
       y = "Cantidad") +
  theme_minimal()

  1. Edad y si es fumante o no
ggplot(historias_clinicas, aes(x = Edad, fill = Fumante)) +
  geom_bar(position = "dodge") +
  labs(title = "Distribución de edades por fumador/no fumador",
       x = "Edad",
       y = "Cantidad",
       fill = "Fumante") +
  theme_minimal()

  1. Pacientes por piso divididos por sexo
ggplot(historias_clinicas, aes(x = factor(Numero_de_piso), fill = Sexo)) +
  geom_bar() +
  labs(title = "Pacientes por piso divididos por sexo",
       x = "Número de piso",
       y = "Cantidad de pacientes",
       fill = "Sexo") +
  theme_minimal()

  1. Edad y causa de ingreso
# Crear un diagrama de caja
ggplot(historias_clinicas, aes(x = factor(Edad), fill = Causa_de_ingreso)) +
  geom_bar() +
  labs(title = "Relación entre edad y causa de ingreso",
       x = "Edad",
       y = "Numero de personas",
       fill = "Causa de ingreso") +
  theme_minimal()

  1. Promedio de edad (M,H)
# Calcular el promedio de edad por sexo
promedio_edad = aggregate(Edad ~ Sexo, data = historias_clinicas, FUN = mean)

# Crear un gráfico de barras para el promedio de edad por género
ggplot(promedio_edad, aes(x = Sexo, y = Edad, fill = Sexo)) +
  geom_bar(stat = "identity", width = 0.5) +
  labs(title = "Promedio de edad por género",
       x = "Género",
       y = "Edad promedio") +
  theme_minimal()

  1. Datos independientes de 3 pacientes
# Seleccionar datos de tres pacientes específicos
paciente1 = historias_clinicas[historias_clinicas$Numero_de_historial_clinico == 1, ]
paciente2 = historias_clinicas[historias_clinicas$Numero_de_historial_clinico == 2, ]
paciente3 = historias_clinicas[historias_clinicas$Numero_de_historial_clinico == 3, ]

# Mostrar los datos de los tres pacientes
print(paciente1)
##   Numero_de_Cedula Nombres Apellidos Edad Sexo Domicilio Ciudad Departamento
## 1       1234567890  Camila     Perez   35    F Calle 123 Bogota Cundinamarca
##   Numero_de_telefono Numero_de_historial_clinico Fumante Procedencia
## 1         1234567890                           1       S   Urgencias
##   Fecha_de_ingreso Numero_de_piso Numero_de_cama Causa_de_ingreso
## 1       2022-01-01              1            101  Dolor abdominal
print(paciente2)
##   Numero_de_Cedula Nombres Apellidos Edad Sexo     Domicilio   Ciudad
## 2       2345678901   Maria     Gomez   45    F Av. Principal Medellin
##   Departamento Numero_de_telefono Numero_de_historial_clinico Fumante
## 2    Antioquia         2345678901                           2       N
##        Procedencia Fecha_de_ingreso Numero_de_piso Numero_de_cama
## 2 Consulta Externa       2022-02-15              3            301
##   Causa_de_ingreso
## 2           Fiebre
print(paciente3)
##   Numero_de_Cedula Nombres Apellidos Edad Sexo  Domicilio Ciudad
## 3       3456789012   Pedro     Lopez   28    M Carrera 45   Cali
##      Departamento Numero_de_telefono Numero_de_historial_clinico Fumante
## 3 Valle del Cauca         3456789012                           3       N
##                 Procedencia Fecha_de_ingreso Numero_de_piso Numero_de_cama
## 3 Referencia de otro centro       2022-03-10              2            202
##    Causa_de_ingreso
## 3 Fractura de brazo
# Crear un data frame con los datos de los tres pacientes
pacientes = rbind(paciente1, paciente2, paciente3)

# Crear un gráfico de puntos para los datos de los tres pacientes
ggplot(pacientes, aes(x = Numero_de_historial_clinico, y = Edad, color = Sexo)) +
  geom_point(size = 3) +
  labs(title = "Datos independientes de 3 pacientes",
       x = "Número de historial clínico",
       y = "Edad") +
  scale_color_manual(values = c("blue", "red"), labels = c("M", "F")) +
  theme_minimal()

  1. Datos de 3 pacientes por identidad
cedulas_pac = c("1234567890", "2345678901", "3456789012")
pacientes_seleccionados = historias_clinicas[historias_clinicas$Numero_de_Cedula %in% cedulas_pac, ]

print(pacientes_seleccionados)
##   Numero_de_Cedula Nombres Apellidos Edad Sexo     Domicilio   Ciudad
## 1       1234567890  Camila     Perez   35    F     Calle 123   Bogota
## 2       2345678901   Maria     Gomez   45    F Av. Principal Medellin
## 3       3456789012   Pedro     Lopez   28    M    Carrera 45     Cali
##      Departamento Numero_de_telefono Numero_de_historial_clinico Fumante
## 1    Cundinamarca         1234567890                           1       S
## 2       Antioquia         2345678901                           2       N
## 3 Valle del Cauca         3456789012                           3       N
##                 Procedencia Fecha_de_ingreso Numero_de_piso Numero_de_cama
## 1                 Urgencias       2022-01-01              1            101
## 2          Consulta Externa       2022-02-15              3            301
## 3 Referencia de otro centro       2022-03-10              2            202
##    Causa_de_ingreso
## 1   Dolor abdominal
## 2            Fiebre
## 3 Fractura de brazo
  1. Lista de causas de ingreso
# Obtener las causas de ingreso únicas
causas_ingreso = unique(historias_clinicas$Causa_de_ingreso)

# Mostrar la lista de causas de ingreso
print(causas_ingreso)
##  [1] "Dolor abdominal"            "Fiebre"                    
##  [3] "Fractura de brazo"          "Accidente de tráfico"      
##  [5] "Cefalea"                    "Infarto agudo de miocardio"
##  [7] "Gripe"                      "Neumonía"                  
##  [9] "Dolor torácico"             "Intoxicación alimentaria"  
## [11] "Fractura de pierna"         "Problema respiratorio"
  1. Exportar base de datos a Excel
write.xlsx(historias_clinicas, "historias_clinicas.xlsx")