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 3658007 Juan Gomez 51 F
## 2 8642386 Maria Lopez 53 M
## 3 7783024 Luis Martinez 62 M
## 4 4335249 Ana Rodriguez 33 F
## 5 9699027 Carlos Perez 37 M
## 6 8684676 Sofia Fernandez 68 M
## 7 5025188 Pedro Sanchez 72 F
## 8 7129667 Laura Gonzalez 73 M
## 9 3867598 Raul Ramirez 38 M
## 10 1433966 Elena Diaz 50 M
## 11 4000081 Diego Torres 54 M
## 12 9364932 Isabel Ruiz 76 M
## 13 4985333 Javier Ortega 79 M
## 14 4846134 Carmen Vargas 19 M
## 15 5881938 Fernando Castro 49 F
## 16 9371396 Marta Jimenez 78 M
## 17 7519414 Gabriel Molina 75 M
## 18 1561778 Silvia Hernandez 30 F
## 19 6350233 Hector Rios 61 F
## 20 5654786 Patricia Garcia 52 F
## Domicilio Ciudad Departamento Numero_de_telefono
## 1 Calle 123 Bogota Cundinamarca 3594879
## 2 Avenida 456 Medellin Antioquia 3370881
## 3 Carrera 789 Cali Valle del Cauca 3507073
## 4 Calle 1011 Barranquilla Atlantico 3435106
## 5 Avenida 1213 Cartagena Bolivar 3622363
## 6 Carrera 1415 Bucaramanga Santander 3615144
## 7 Calle 1617 Pereira Risaralda 3629204
## 8 Avenida 1819 Cucuta Norte de Santander 3298537
## 9 Carrera 2021 Villavicencio Meta 3912849
## 10 Calle 2223 Santa Marta Magdalena 3552591
## 11 Avenida 2425 Ibague Tolima 3156130
## 12 Carrera 2627 Pasto Narino 3766454
## 13 Calle 2829 Manizales Caldas 3070498
## 14 Avenida 3031 Neiva Huila 3008530
## 15 Carrera 3233 Valledupar Cesar 3564229
## 16 Calle 3435 Armenia Quindio 3256924
## 17 Avenida 3637 Popayan Cauca 3970462
## 18 Carrera 3839 Sincelejo Sucre 3344728
## 19 Calle 4041 Monteria Cordoba 3153041
## 20 Avenida 4243 Tunja Boyaca 3426623
## Numero_de_historial_clinico Fumante Procedencia Fecha_Ingreso Num_Piso
## 1 1582 N Emergencia 2023-01-01 4
## 2 1715 S Referido 2023-02-15 9
## 3 1339 N Emergencia 2023-03-10 5
## 4 1373 S Consulta Externa 2023-04-20 1
## 5 1515 S Emergencia 2023-05-05 7
## 6 1239 N Referido 2023-06-08 3
## 7 1632 N Emergencia 2023-07-12 3
## 8 1867 S Referido 2023-08-24 3
## 9 1703 S Emergencia 2023-09-30 9
## 10 1832 S Consulta Externa 2023-10-15 8
## 11 1602 N Emergencia 2023-11-05 5
## 12 1522 N Consulta Externa 2023-12-20 5
## 13 1739 N Referido 2024-01-02 6
## 14 1706 N Emergencia 2024-02-18 1
## 15 1607 S Consulta Externa 2024-03-11 2
## 16 1534 N Emergencia 2024-04-22 7
## 17 1826 S Referido 2024-05-08 1
## 18 1319 S Emergencia 2024-06-10 9
## 19 1990 S Referido 2024-07-22 7
## 20 1898 N Emergencia 2024-08-30 6
## Num_Cama Causa_Ingreso
## 1 39 Fiebre
## 2 31 Fractura de brazo
## 3 6 Dolor abdominal
## 4 12 Neumonía
## 5 2 Infarto de miocardio
## 6 40 Gripe
## 7 14 Dolor de cabeza
## 8 45 Cirugía programada
## 9 4 Dolor lumbar
## 10 4 Gastroenteritis
## 11 45 Accidente automovilístico
## 12 14 Infección respiratoria
## 13 16 Dolor de espalda
## 14 10 Intoxicación alimentaria
## 15 34 Problemas de visión
## 16 22 Apendicitis
## 17 39 Dolor de garganta
## 18 41 Problemas cardíacos
## 19 47 Problemas respiratorios
## 20 47 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 3658007 Juan Gomez 51 F
## 2 8642386 Maria Lopez 53 M
## 3 7783024 Luis Martinez 62 M
## Domicilio Ciudad Departamento Numero_de_telefono
## 1 Calle 123 Bogota Cundinamarca 3594879
## 2 Avenida 456 Medellin Antioquia 3370881
## 3 Carrera 789 Cali Valle del Cauca 3507073
## Numero_de_historial_clinico Fumante Procedencia Fecha_Ingreso Num_Piso
## 1 1582 N Emergencia 2023-01-01 4
## 2 1715 S Referido 2023-02-15 9
## 3 1339 N Emergencia 2023-03-10 5
## Num_Cama Causa_Ingreso
## 1 39 Fiebre
## 2 31 Fractura de brazo
## 3 6 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 3658007 Juan Gomez 51 F
## 5 9699027 Carlos Perez 37 M
## 9 3867598 Raul Ramirez 38 M
## Domicilio Ciudad Departamento Numero_de_telefono
## 1 Calle 123 Bogota Cundinamarca 3594879
## 5 Avenida 1213 Cartagena Bolivar 3622363
## 9 Carrera 2021 Villavicencio Meta 3912849
## Numero_de_historial_clinico Fumante Procedencia Fecha_Ingreso Num_Piso
## 1 1582 N Emergencia 2023-01-01 4
## 5 1515 S Emergencia 2023-05-05 7
## 9 1703 S Emergencia 2023-09-30 9
## Num_Cama Causa_Ingreso
## 1 39 Fiebre
## 5 2 Infarto de miocardio
## 9 4 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