library(writexl)
#2.1 Construya una base de datos de veinte (20) historias clínicas con los siguientes campos:
#2.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))
#2.1.2. Proceso de Ingreso a la entidad: (Procedencia, Fecha de ingreso, Número de piso, Número de cama, Causa de Ingreso)
# Crear una base de datos de historias clínicas
historias_clinicas <- data.frame(
Numero_de_Cedula = integer(20),
Nombres_del_paciente = character(20),
Apellidos_del_paciente = character(20),
Edad = integer(20),
Sexo = character(20),
Domicilio = character(20),
Ciudad = character(20),
Departamento = character(20),
Numero_de_telefono = character(20),
Numero_de_historial_clinico = integer(20),
Fumante = character(20)
)
# Llenar la base de datos con datos ficticios
historias_clinicas$Numero_de_Cedula <- sample(1000000:9999999, 20)
historias_clinicas$Nombres_del_paciente <- c("Juan", "Maria", "Luis", "Ana", "Carlos", "Sofia", "Pedro", "Laura", "Raul", "Elena", "Diego", "Isabel", "Javier", "Carmen", "Fernando", "Marta", "Gabriel", "Silvia", "Hector", "Patricia")
historias_clinicas$Apellidos_del_paciente <- c("Gomez", "Lopez", "Martinez", "Rodriguez", "Perez", "Fernandez", "Sanchez", "Gonzalez", "Ramirez", "Diaz", "Torres", "Ruiz", "Ortega", "Vargas", "Castro", "Jimenez", "Molina", "Hernandez", "Rios", "Garcia")
historias_clinicas$Edad <- sample(18:80, 20)
historias_clinicas$Sexo <- sample(c("M", "F"), 20, replace = TRUE)
historias_clinicas$Domicilio <- c("Calle 123", "Avenida 456", "Carrera 789", "Calle 1011", "Avenida 1213", "Carrera 1415", "Calle 1617", "Avenida 1819", "Carrera 2021", "Calle 2223", "Avenida 2425", "Carrera 2627", "Calle 2829", "Avenida 3031", "Carrera 3233", "Calle 3435", "Avenida 3637", "Carrera 3839", "Calle 4041", "Avenida 4243")
historias_clinicas$Ciudad <- c("Bogota", "Medellin", "Cali", "Barranquilla", "Cartagena", "Bucaramanga", "Pereira", "Cucuta", "Villavicencio", "Santa Marta", "Ibague", "Pasto", "Manizales", "Neiva", "Valledupar", "Armenia", "Popayan", "Sincelejo", "Monteria", "Tunja")
historias_clinicas$Departamento <- c("Cundinamarca", "Antioquia", "Valle del Cauca", "Atlantico", "Bolivar", "Santander", "Risaralda", "Norte de Santander", "Meta", "Magdalena", "Tolima", "Narino", "Caldas", "Huila", "Cesar", "Quindio", "Cauca", "Sucre", "Cordoba", "Boyaca")
historias_clinicas$Numero_de_telefono <- sample(3000000:3999999, 20)
historias_clinicas$Numero_de_historial_clinico <- sample(1000:1999, 20)
historias_clinicas$Fumante <- sample(c("S", "N"), 20, replace = TRUE)
Numero_de_historial_clinico = c(1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020)
fecha_ingreso <- as.Date(c("2023-01-01", "2023-02-15", "2023-03-10", "2023-04-20", "2023-05-05", "2023-06-08", "2023-07-12", "2023-08-24", "2023-09-30", "2023-10-15", "2023-11-05", "2023-12-20", "2024-01-02", "2024-02-18", "2024-03-11", "2024-04-22", "2024-05-08", "2024-06-10", "2024-07-22", "2024-08-30"))
num_piso <- sample(1:10, 20, replace = TRUE)
num_cama <- sample(1:50, 20, replace = TRUE)
causa_ingreso = c("Fiebre", "Fractura de brazo", "Dolor abdominal", "Neumonía", "Infarto de miocardio", "Gripe", "Dolor de cabeza", "Cirugía programada", "Dolor lumbar", "Gastroenteritis", "Accidente automovilístico", "Infección respiratoria", "Dolor de espalda", "Intoxicación alimentaria", "Problemas de visión", "Apendicitis", "Dolor de garganta", "Problemas cardíacos", "Problemas respiratorios", "Gripe")
procedencia = c("Emergencia", "Referido", "Emergencia", "Consulta Externa", "Emergencia", "Referido", "Emergencia", "Referido", "Emergencia", "Consulta Externa", "Emergencia", "Consulta Externa", "Referido", "Emergencia", "Consulta Externa", "Emergencia", "Referido", "Emergencia", "Referido", "Emergencia")
historias_clinicas$Procedencia <- procedencia
historias_clinicas$Fecha_Ingreso <- fecha_ingreso
historias_clinicas$Num_Piso <- num_piso
historias_clinicas$Num_Cama <- num_cama
historias_clinicas$Causa_Ingreso <- causa_ingreso
# Mostrar la base de datos
print(historias_clinicas)
## Numero_de_Cedula Nombres_del_paciente Apellidos_del_paciente Edad Sexo
## 1 1993283 Juan Gomez 54 M
## 2 3976417 Maria Lopez 34 F
## 3 9272181 Luis Martinez 50 F
## 4 9874214 Ana Rodriguez 68 F
## 5 8897114 Carlos Perez 37 M
## 6 6510874 Sofia Fernandez 31 F
## 7 5479583 Pedro Sanchez 77 F
## 8 7854010 Laura Gonzalez 78 F
## 9 3168852 Raul Ramirez 52 M
## 10 6147062 Elena Diaz 53 F
## 11 8561136 Diego Torres 25 M
## 12 7808518 Isabel Ruiz 74 F
## 13 6913940 Javier Ortega 21 F
## 14 7355802 Carmen Vargas 66 M
## 15 2246008 Fernando Castro 24 M
## 16 4819147 Marta Jimenez 39 M
## 17 5265345 Gabriel Molina 33 M
## 18 4137454 Silvia Hernandez 79 F
## 19 5693659 Hector Rios 69 M
## 20 1655619 Patricia Garcia 43 M
## Domicilio Ciudad Departamento Numero_de_telefono
## 1 Calle 123 Bogota Cundinamarca 3817971
## 2 Avenida 456 Medellin Antioquia 3254712
## 3 Carrera 789 Cali Valle del Cauca 3676607
## 4 Calle 1011 Barranquilla Atlantico 3540118
## 5 Avenida 1213 Cartagena Bolivar 3378669
## 6 Carrera 1415 Bucaramanga Santander 3659393
## 7 Calle 1617 Pereira Risaralda 3675388
## 8 Avenida 1819 Cucuta Norte de Santander 3527205
## 9 Carrera 2021 Villavicencio Meta 3655982
## 10 Calle 2223 Santa Marta Magdalena 3119337
## 11 Avenida 2425 Ibague Tolima 3905200
## 12 Carrera 2627 Pasto Narino 3039263
## 13 Calle 2829 Manizales Caldas 3176816
## 14 Avenida 3031 Neiva Huila 3354462
## 15 Carrera 3233 Valledupar Cesar 3610336
## 16 Calle 3435 Armenia Quindio 3330072
## 17 Avenida 3637 Popayan Cauca 3320693
## 18 Carrera 3839 Sincelejo Sucre 3821518
## 19 Calle 4041 Monteria Cordoba 3715550
## 20 Avenida 4243 Tunja Boyaca 3770249
## Numero_de_historial_clinico Fumante Procedencia Fecha_Ingreso Num_Piso
## 1 1049 N Emergencia 2023-01-01 6
## 2 1945 N Referido 2023-02-15 1
## 3 1405 N Emergencia 2023-03-10 5
## 4 1177 N Consulta Externa 2023-04-20 2
## 5 1907 S Emergencia 2023-05-05 7
## 6 1256 S Referido 2023-06-08 4
## 7 1504 N Emergencia 2023-07-12 1
## 8 1113 S Referido 2023-08-24 10
## 9 1666 S Emergencia 2023-09-30 7
## 10 1227 N Consulta Externa 2023-10-15 7
## 11 1250 S Emergencia 2023-11-05 7
## 12 1812 S Consulta Externa 2023-12-20 3
## 13 1622 S Referido 2024-01-02 6
## 14 1953 N Emergencia 2024-02-18 2
## 15 1613 S Consulta Externa 2024-03-11 4
## 16 1466 S Emergencia 2024-04-22 7
## 17 1940 S Referido 2024-05-08 7
## 18 1050 S Emergencia 2024-06-10 4
## 19 1412 N Referido 2024-07-22 1
## 20 1823 S Emergencia 2024-08-30 5
## Num_Cama Causa_Ingreso
## 1 36 Fiebre
## 2 38 Fractura de brazo
## 3 38 Dolor abdominal
## 4 15 Neumonía
## 5 49 Infarto de miocardio
## 6 37 Gripe
## 7 2 Dolor de cabeza
## 8 44 Cirugía programada
## 9 39 Dolor lumbar
## 10 10 Gastroenteritis
## 11 11 Accidente automovilístico
## 12 35 Infección respiratoria
## 13 26 Dolor de espalda
## 14 32 Intoxicación alimentaria
## 15 26 Problemas de visión
## 16 15 Apendicitis
## 17 31 Dolor de garganta
## 18 17 Problemas cardíacos
## 19 42 Problemas respiratorios
## 20 48 Gripe
#2.2. Por medio de informe gráfico clasifique por:
#a) Pacientes mujeres y Hombres
barplot(table(historias_clinicas$Sexo),
main = "Distribución de Pacientes por Género",
xlab = "Género",
ylab = "Cantidad de Pacientes",
col = c("royalblue3", "orchid3"))

#b) edad y si es fumante o no
par(mfrow = c(1, 2))
hist(historias_clinicas$Edad[ historias_clinicas$Fumante == "N" ],
main = "Edad de No Fumantes",
xlab = "Edad",
ylab = "Cantidad de Pacientes",
col = "darkslategray2")
hist(historias_clinicas$Edad[ historias_clinicas$Fumante == "S" ],
main = "Edad de Fumantes",
xlab = "Edad",
ylab = "Cantidad de Pacientes",
col = "lightsalmon")

#c) Pacientes por piso divididos por sexo
barplot(table(historias_clinicas$Num_Piso, historias_clinicas$Sexo),
main = "Distribución de Pacientes por Piso y Género",
xlab = "Piso",
ylab = "Cantidad de Pacientes",
col = c("lightblue4", "magenta4"),
legend = c("M", "F"))
# Encontrar el rango mínimo y máximo de edades en los datos
min_edad <- min(historias_clinicas$Edad)
max_edad <- max(historias_clinicas$Edad)
# Establecer el número de intervalos deseado (ajusta según sea necesario)
num_intervalos <- 10
# Calcular la amplitud del intervalo
amplitud <- ceiling((max_edad - min_edad) / num_intervalos)
# Crear un rango de intervalos basado en la amplitud
intervalos <- seq(min_edad, max_edad + amplitud, by = amplitud)
#d) Edad y causa de ingreso
par(mfrow = c(1, 1))

hist(historias_clinicas$Edad,
breaks = intervalos,
main = "Distribución de Edad de Pacientes por Causa de Ingreso",
xlab = "Edad",
ylab = "Cantidad de Pacientes",
col = "tomato3")
# Agregar una leyenda
legend("topright", unique(historias_clinicas$Causa_Ingreso), fill = "tomato3")

#e) Promedio de edad (M,H)
promedio_edad <- tapply(historias_clinicas$Edad, historias_clinicas$Sexo, mean)
barplot(promedio_edad, main = "Promedio de Edad por Género",
xlab = "Género", ylab = "Promedio de Edad",
col = c("turquoise3", "violetred3"), names.arg = c("M", "F"))

#f) Datos independientes de 3 pacientes
tres_pacientes <- head(historias_clinicas, 3)
print(tres_pacientes)
## Numero_de_Cedula Nombres_del_paciente Apellidos_del_paciente Edad Sexo
## 1 1993283 Juan Gomez 54 M
## 2 3976417 Maria Lopez 34 F
## 3 9272181 Luis Martinez 50 F
## Domicilio Ciudad Departamento Numero_de_telefono
## 1 Calle 123 Bogota Cundinamarca 3817971
## 2 Avenida 456 Medellin Antioquia 3254712
## 3 Carrera 789 Cali Valle del Cauca 3676607
## Numero_de_historial_clinico Fumante Procedencia Fecha_Ingreso Num_Piso
## 1 1049 N Emergencia 2023-01-01 6
## 2 1945 N Referido 2023-02-15 1
## 3 1405 N Emergencia 2023-03-10 5
## Num_Cama Causa_Ingreso
## 1 36 Fiebre
## 2 38 Fractura de brazo
## 3 38 Dolor abdominal
#g) Datos de 3 pacientes por identidad
pacientes_por_identidad <- historias_clinicas[c(1, 5, 9), ]
print(pacientes_por_identidad)
## Numero_de_Cedula Nombres_del_paciente Apellidos_del_paciente Edad Sexo
## 1 1993283 Juan Gomez 54 M
## 5 8897114 Carlos Perez 37 M
## 9 3168852 Raul Ramirez 52 M
## Domicilio Ciudad Departamento Numero_de_telefono
## 1 Calle 123 Bogota Cundinamarca 3817971
## 5 Avenida 1213 Cartagena Bolivar 3378669
## 9 Carrera 2021 Villavicencio Meta 3655982
## Numero_de_historial_clinico Fumante Procedencia Fecha_Ingreso Num_Piso
## 1 1049 N Emergencia 2023-01-01 6
## 5 1907 S Emergencia 2023-05-05 7
## 9 1666 S Emergencia 2023-09-30 7
## Num_Cama Causa_Ingreso
## 1 36 Fiebre
## 5 49 Infarto de miocardio
## 9 39 Dolor lumbar
#h) Lista de causas de ingreso
causas_ingreso <- unique(historias_clinicas$Causa_Ingreso)
print(causas_ingreso)
## [1] "Fiebre" "Fractura de brazo"
## [3] "Dolor abdominal" "Neumonía"
## [5] "Infarto de miocardio" "Gripe"
## [7] "Dolor de cabeza" "Cirugía programada"
## [9] "Dolor lumbar" "Gastroenteritis"
## [11] "Accidente automovilístico" "Infección respiratoria"
## [13] "Dolor de espalda" "Intoxicación alimentaria"
## [15] "Problemas de visión" "Apendicitis"
## [17] "Dolor de garganta" "Problemas cardíacos"
## [19] "Problemas respiratorios"
#2.3. Exportar base de datos a Excel
Taller3 <- "historias_clinicas.xlsx"
write_xlsx(historias_clinicas, Taller3)
cat("Los datos se han exportado a", Taller3, "\n")
## Los datos se han exportado a historias_clinicas.xlsx