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 5889878 Juan Gomez 80 M
## 2 6031237 Maria Lopez 47 M
## 3 7443854 Luis Martinez 76 M
## 4 7669191 Ana Rodriguez 65 F
## 5 6565678 Carlos Perez 28 M
## 6 7645676 Sofia Fernandez 53 M
## 7 4848348 Pedro Sanchez 71 F
## 8 4194381 Laura Gonzalez 18 M
## 9 7864132 Raul Ramirez 54 M
## 10 2505404 Elena Diaz 42 M
## 11 7487283 Diego Torres 62 F
## 12 1861447 Isabel Ruiz 51 F
## 13 6397253 Javier Ortega 44 M
## 14 8709975 Carmen Vargas 56 M
## 15 5957192 Fernando Castro 21 M
## 16 1950313 Marta Jimenez 79 M
## 17 4398419 Gabriel Molina 69 F
## 18 8038825 Silvia Hernandez 60 F
## 19 7454767 Hector Rios 22 M
## 20 1805643 Patricia Garcia 29 M
## Domicilio Ciudad Departamento Numero_de_telefono
## 1 Calle 123 Bogota Cundinamarca 3723943
## 2 Avenida 456 Medellin Antioquia 3180438
## 3 Carrera 789 Cali Valle del Cauca 3097310
## 4 Calle 1011 Barranquilla Atlantico 3252395
## 5 Avenida 1213 Cartagena Bolivar 3041260
## 6 Carrera 1415 Bucaramanga Santander 3538138
## 7 Calle 1617 Pereira Risaralda 3249765
## 8 Avenida 1819 Cucuta Norte de Santander 3289900
## 9 Carrera 2021 Villavicencio Meta 3250142
## 10 Calle 2223 Santa Marta Magdalena 3475059
## 11 Avenida 2425 Ibague Tolima 3275871
## 12 Carrera 2627 Pasto Narino 3650011
## 13 Calle 2829 Manizales Caldas 3279099
## 14 Avenida 3031 Neiva Huila 3751659
## 15 Carrera 3233 Valledupar Cesar 3819390
## 16 Calle 3435 Armenia Quindio 3789712
## 17 Avenida 3637 Popayan Cauca 3330210
## 18 Carrera 3839 Sincelejo Sucre 3877009
## 19 Calle 4041 Monteria Cordoba 3646769
## 20 Avenida 4243 Tunja Boyaca 3777818
## Numero_de_historial_clinico Fumante Procedencia Fecha_Ingreso Num_Piso
## 1 1107 S Emergencia 2023-01-01 6
## 2 1786 S Referido 2023-02-15 8
## 3 1859 S Emergencia 2023-03-10 10
## 4 1056 N Consulta Externa 2023-04-20 2
## 5 1097 S Emergencia 2023-05-05 3
## 6 1284 S Referido 2023-06-08 8
## 7 1202 N Emergencia 2023-07-12 3
## 8 1275 S Referido 2023-08-24 4
## 9 1840 N Emergencia 2023-09-30 6
## 10 1888 N Consulta Externa 2023-10-15 2
## 11 1444 N Emergencia 2023-11-05 10
## 12 1347 N Consulta Externa 2023-12-20 1
## 13 1099 S Referido 2024-01-02 5
## 14 1028 N Emergencia 2024-02-18 9
## 15 1540 N Consulta Externa 2024-03-11 7
## 16 1538 S Emergencia 2024-04-22 4
## 17 1777 S Referido 2024-05-08 8
## 18 1432 S Emergencia 2024-06-10 2
## 19 1261 S Referido 2024-07-22 3
## 20 1195 N Emergencia 2024-08-30 9
## Num_Cama Causa_Ingreso
## 1 47 Fiebre
## 2 27 Fractura de brazo
## 3 10 Dolor abdominal
## 4 25 Neumonía
## 5 47 Infarto de miocardio
## 6 18 Gripe
## 7 30 Dolor de cabeza
## 8 44 Cirugía programada
## 9 9 Dolor lumbar
## 10 1 Gastroenteritis
## 11 34 Accidente automovilístico
## 12 18 Infección respiratoria
## 13 49 Dolor de espalda
## 14 14 Intoxicación alimentaria
## 15 36 Problemas de visión
## 16 11 Apendicitis
## 17 14 Dolor de garganta
## 18 26 Problemas cardíacos
## 19 7 Problemas respiratorios
## 20 26 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 5889878 Juan Gomez 80 M
## 2 6031237 Maria Lopez 47 M
## 3 7443854 Luis Martinez 76 M
## Domicilio Ciudad Departamento Numero_de_telefono
## 1 Calle 123 Bogota Cundinamarca 3723943
## 2 Avenida 456 Medellin Antioquia 3180438
## 3 Carrera 789 Cali Valle del Cauca 3097310
## Numero_de_historial_clinico Fumante Procedencia Fecha_Ingreso Num_Piso
## 1 1107 S Emergencia 2023-01-01 6
## 2 1786 S Referido 2023-02-15 8
## 3 1859 S Emergencia 2023-03-10 10
## Num_Cama Causa_Ingreso
## 1 47 Fiebre
## 2 27 Fractura de brazo
## 3 10 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 5889878 Juan Gomez 80 M
## 5 6565678 Carlos Perez 28 M
## 9 7864132 Raul Ramirez 54 M
## Domicilio Ciudad Departamento Numero_de_telefono
## 1 Calle 123 Bogota Cundinamarca 3723943
## 5 Avenida 1213 Cartagena Bolivar 3041260
## 9 Carrera 2021 Villavicencio Meta 3250142
## Numero_de_historial_clinico Fumante Procedencia Fecha_Ingreso Num_Piso
## 1 1107 S Emergencia 2023-01-01 6
## 5 1097 S Emergencia 2023-05-05 3
## 9 1840 N Emergencia 2023-09-30 6
## Num_Cama Causa_Ingreso
## 1 47 Fiebre
## 5 47 Infarto de miocardio
## 9 9 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