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 9987485 Juan Gomez 43 F
## 2 5051355 Maria Lopez 19 M
## 3 8039469 Luis Martinez 34 M
## 4 5523250 Ana Rodriguez 79 M
## 5 1051053 Carlos Perez 23 F
## 6 3532232 Sofia Fernandez 61 F
## 7 4281311 Pedro Sanchez 60 M
## 8 5246210 Laura Gonzalez 71 F
## 9 1176800 Raul Ramirez 38 M
## 10 6431159 Elena Diaz 27 M
## 11 1446171 Diego Torres 47 F
## 12 4627956 Isabel Ruiz 24 F
## 13 5585664 Javier Ortega 66 M
## 14 5654548 Carmen Vargas 50 F
## 15 8041378 Fernando Castro 46 F
## 16 4296751 Marta Jimenez 78 M
## 17 3173781 Gabriel Molina 31 F
## 18 1995189 Silvia Hernandez 42 F
## 19 1162111 Hector Rios 48 M
## 20 4225269 Patricia Garcia 77 M
## Domicilio Ciudad Departamento Numero_de_telefono
## 1 Calle 123 Bogota Cundinamarca 3314763
## 2 Avenida 456 Medellin Antioquia 3452437
## 3 Carrera 789 Cali Valle del Cauca 3797621
## 4 Calle 1011 Barranquilla Atlantico 3831523
## 5 Avenida 1213 Cartagena Bolivar 3078246
## 6 Carrera 1415 Bucaramanga Santander 3941412
## 7 Calle 1617 Pereira Risaralda 3393938
## 8 Avenida 1819 Cucuta Norte de Santander 3974933
## 9 Carrera 2021 Villavicencio Meta 3907651
## 10 Calle 2223 Santa Marta Magdalena 3934339
## 11 Avenida 2425 Ibague Tolima 3478524
## 12 Carrera 2627 Pasto Narino 3928530
## 13 Calle 2829 Manizales Caldas 3333674
## 14 Avenida 3031 Neiva Huila 3478745
## 15 Carrera 3233 Valledupar Cesar 3431271
## 16 Calle 3435 Armenia Quindio 3202412
## 17 Avenida 3637 Popayan Cauca 3075509
## 18 Carrera 3839 Sincelejo Sucre 3909379
## 19 Calle 4041 Monteria Cordoba 3203310
## 20 Avenida 4243 Tunja Boyaca 3595189
## Numero_de_historial_clinico Fumante Procedencia Fecha_Ingreso Num_Piso
## 1 1635 S Emergencia 2023-01-01 9
## 2 1396 S Referido 2023-02-15 7
## 3 1312 N Emergencia 2023-03-10 5
## 4 1648 N Consulta Externa 2023-04-20 6
## 5 1086 S Emergencia 2023-05-05 8
## 6 1313 S Referido 2023-06-08 10
## 7 1376 N Emergencia 2023-07-12 4
## 8 1548 N Referido 2023-08-24 2
## 9 1453 S Emergencia 2023-09-30 4
## 10 1204 N Consulta Externa 2023-10-15 4
## 11 1703 S Emergencia 2023-11-05 5
## 12 1839 S Consulta Externa 2023-12-20 2
## 13 1044 S Referido 2024-01-02 8
## 14 1721 S Emergencia 2024-02-18 4
## 15 1694 N Consulta Externa 2024-03-11 7
## 16 1099 N Emergencia 2024-04-22 2
## 17 1084 N Referido 2024-05-08 10
## 18 1525 N Emergencia 2024-06-10 3
## 19 1307 S Referido 2024-07-22 2
## 20 1813 S Emergencia 2024-08-30 8
## Num_Cama Causa_Ingreso
## 1 28 Fiebre
## 2 2 Fractura de brazo
## 3 38 Dolor abdominal
## 4 15 Neumonía
## 5 12 Infarto de miocardio
## 6 35 Gripe
## 7 42 Dolor de cabeza
## 8 44 Cirugía programada
## 9 42 Dolor lumbar
## 10 33 Gastroenteritis
## 11 27 Accidente automovilístico
## 12 15 Infección respiratoria
## 13 32 Dolor de espalda
## 14 15 Intoxicación alimentaria
## 15 48 Problemas de visión
## 16 18 Apendicitis
## 17 2 Dolor de garganta
## 18 10 Problemas cardíacos
## 19 15 Problemas respiratorios
## 20 35 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 9987485 Juan Gomez 43 F
## 2 5051355 Maria Lopez 19 M
## 3 8039469 Luis Martinez 34 M
## Domicilio Ciudad Departamento Numero_de_telefono
## 1 Calle 123 Bogota Cundinamarca 3314763
## 2 Avenida 456 Medellin Antioquia 3452437
## 3 Carrera 789 Cali Valle del Cauca 3797621
## Numero_de_historial_clinico Fumante Procedencia Fecha_Ingreso Num_Piso
## 1 1635 S Emergencia 2023-01-01 9
## 2 1396 S Referido 2023-02-15 7
## 3 1312 N Emergencia 2023-03-10 5
## Num_Cama Causa_Ingreso
## 1 28 Fiebre
## 2 2 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 9987485 Juan Gomez 43 F
## 5 1051053 Carlos Perez 23 F
## 9 1176800 Raul Ramirez 38 M
## Domicilio Ciudad Departamento Numero_de_telefono
## 1 Calle 123 Bogota Cundinamarca 3314763
## 5 Avenida 1213 Cartagena Bolivar 3078246
## 9 Carrera 2021 Villavicencio Meta 3907651
## Numero_de_historial_clinico Fumante Procedencia Fecha_Ingreso Num_Piso
## 1 1635 S Emergencia 2023-01-01 9
## 5 1086 S Emergencia 2023-05-05 8
## 9 1453 S Emergencia 2023-09-30 4
## Num_Cama Causa_Ingreso
## 1 28 Fiebre
## 5 12 Infarto de miocardio
## 9 42 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
Taller2 <- "historias_clinicas.xlsx"
write_xlsx(historias_clinicas, Taller2)
cat("Los datos se han exportado a", Taller2, "\n")
## Los datos se han exportado a historias_clinicas.xlsx