Cargar los paquetes readxl, janitor, naniar y tidyverse utilizando la función library().
Si alguno de los paquetes no está instalado, deberás instalarlo utilizando install.packages().
Consigna: Leé el archivo Excel utilizando read_excel() y guardá la información en un objeto llamado “datos”.
Antes de comenzar el análisis, es importante conocer cómo está organizada la base de datos. Para ello, vamos a explorar los nombres de las variables y observar la estructura general del conjunto de datos.
Realizá las siguientes actividades insertando dos chunks de código:
inserta aquí un chunk
## [1] "ID Paciente" "Fecha Control" "Departamento"
## [4] "Sexo" "Edad" "Peso (kg)"
## [7] "Talla (cm)" "Presión Sistólica" "Presión Diastólica"
## [10] "Glucemia (mg/dl)" "Diabetes" "Fumador"
## Rows: 120
## Columns: 12
## $ `ID Paciente` <chr> "P001", "P002", "P003", "P004", "P005", "P006", "…
## $ `Fecha Control` <dttm> 2026-05-15, 2026-08-19, 2026-07-12, 2026-03-02, …
## $ Departamento <chr> "Andalgalá", "Valle Viejo", "Capital", "Belén", "…
## $ Sexo <chr> "F", "F", "M", "M", "F", "F", "M", "F", "F", "F",…
## $ Edad <dbl> 23, 58, 35, 73, 43, 57, 65, 66, 21, 29, 47, 59, 8…
## $ `Peso (kg)` <dbl> 68.7, 69.6, 87.8, 94.8, 62.4, 110.2, 64.3, 63.6, …
## $ `Talla (cm)` <dbl> 162, 157, 170, 168, 159, 178, 167, 150, 166, 150,…
## $ `Presión Sistólica` <dbl> 113, 126, 144, 152, 115, 146, 122, 118, 132, 116,…
## $ `Presión Diastólica` <dbl> 70, 70, 66, 85, 80, 71, 65, 69, 63, 62, 64, 77, 8…
## $ `Glucemia (mg/dl)` <dbl> 90, 91, 78, NA, 100, 87, 82, 86, 85, 98, 70, 184,…
## $ Diabetes <chr> "No", "No", "No", "No", "No", "No", "No", "No", "…
## $ Fumador <chr> "No", "No", "No", "No", "No", "Sí", "No", "No", "…
Responder:
-Indicar el tipo de variable(categóricas character, numéricas double)
Tipo caracter: Diabetes, Fumador, Departamento, Sexo.
Tipo double (numérica) ID paciente Edad, Peso, Talla, Presion sistolica, Presion diastolica, Glucemia.
Tipo Fecha: Fecha control.
Una vez explorada la base de datos, vamos a realizar una primera preparación. Para ello, utilizaremos la función “clean_names()” del paquete janitor, que permite estandarizar los nombres de las variables.
Aplicá la función clean_names() a la base de datos (nobrada como datos) y guardá el resultado en un nuevo objeto llamado “salud”.
Volvé a observar los nombres de las variables utilizando names() y el nombre del nuevo objeto como argumento dentro de los paréntesis.
## [1] "id_paciente" "fecha_control" "departamento"
## [4] "sexo" "edad" "peso_kg"
## [7] "talla_cm" "presion_sistolica" "presion_diastolica"
## [10] "glucemia_mg_dl" "diabetes" "fumador"
Responder:
Sacó acentos. Evitó espacios con guiones bajos. Quitó paréntesis.
Respondido antes
Para evitar errores de lectura. Para facilitar el análisis. Para facilitar la escritura en el código.
Una precisión conceptual: clean_names() modifica los nombres, no los valores de las variables ni sus tipos de datos.
Utilizá la función “vis_miss()” del paquete naniar para conocer la cantidad y el porcentaje de datos faltantes de cada variable.
Responder: - ¿Qué variables presentan datos faltantes?
Glucemia
Glucemia con 2% de valores NA
En este caso no, porque la proporción de NA es muy baja.
Vamos a suponer que nos interesa trabajar solamente con algunas variables de la base de datos.
Creá un nuevo objeto llamado “variables_seleccionadas” que contenga las siguientes variables: - Sexo. - Peso - Edad. - Departamento. - Presión sistólica. - Glucemia.
Para ello, utilizá la función “select()” y el operador pipe (|>).
Recordá la siguiente estructura:nuevo_objeto <- objeto_original
|>
select(variable_1, variable_2, variable_3)
Para visualizar el nuevo objeto, insertá otro chunk y escribí el nombre del objeto creado.
## # A tibble: 120 × 6
## sexo peso_kg edad departamento presion_sistolica glucemia_mg_dl
## <chr> <dbl> <dbl> <chr> <dbl> <dbl>
## 1 F 68.7 23 Andalgalá 113 90
## 2 F 69.6 58 Valle Viejo 126 91
## 3 M 87.8 35 Capital 144 78
## 4 M 94.8 73 Belén 152 NA
## 5 F 62.4 43 Fray Mamerto Esquiú 115 100
## 6 F 110. 57 Fray Mamerto Esquiú 146 87
## 7 M 64.3 65 Valle Viejo 122 82
## 8 F 63.6 66 Belén 118 86
## 9 F 73.6 21 Andalgalá 132 85
## 10 F 55.2 29 Tinogasta 116 98
## # ℹ 110 more rows
Responder: - ¿Cuántas variables tiene ahora la nueva base de datos?
Tiene 6 variables
NO
## Rows: 120
## Columns: 6
## $ sexo <chr> "F", "F", "M", "M", "F", "F", "M", "F", "F", "F", "M…
## $ peso_kg <dbl> 68.7, 69.6, 87.8, 94.8, 62.4, 110.2, 64.3, 63.6, 73.…
## $ edad <dbl> 23, 58, 35, 73, 43, 57, 65, 66, 21, 29, 47, 59, 80, …
## $ departamento <chr> "Andalgalá", "Valle Viejo", "Capital", "Belén", "Fra…
## $ presion_sistolica <dbl> 113, 126, 144, 152, 115, 146, 122, 118, 132, 116, 12…
## $ glucemia_mg_dl <dbl> 90, 91, 78, NA, 100, 87, 82, 86, 85, 98, 70, 184, 16…
En esta actividad vamos a seleccionar pacientes que cumplan determinadas condiciones.
Creá un nuevo objeto llamado “masculino” utilizando filter() para seleccionar únicamente los pacientes de sexo masculino.
Podés utilizar esta estructura:
nuevo_objeto <- objeto_original |> filter(sexo == “Masculino”)
Responder: - ¿Cuántos pacientes de sexo masculino hay en la base de datos? Hay 67 pacientes masculinos
Filtrar a los pacientes que sean “fumadores” y pertenezcan al departamento “Capital”.
Ayuda:
objeto |> filter(fumadores == "Sí", departamento == "Capital")
Responder: - ¿Cuántos pacientes cumplen ambas condiciones?
6 pacientes
En esta actividad vamos a calcular algunos indicadores estadísticos descriptivos para conocer mejor las características de los pacientes.
Calculá para toda la base de datos:
Funciones que vamos a utilizar:
Ayuda: algunas variables pueden contener datos
faltantes (NA). Para que estos valores no impidan realizar
los cálculos, agregá el argumento “na.rm = TRUE” dentro de las funciones
correspondientes.
## [1] 50.325
## [1] 54
## [1] 99.04274
Responder:
La edad promedio es de 50.3 años
La media y la mediana (54 años)están bastante cercanas, aunque no son iguales
El valor promedio de glucemia es 99.04 mg/dl
b) Medidas de resumen por sexo
Calculá la media de la presión sistólica para cada grupo de sexo.
Para ello, utilizá “group_by()” para agrupar los pacientes por sexo y luego “summarise()” para calcular la media. Agregá también “n = n()” para conocer la cantidad de pacientes de cada grupo.
## # A tibble: 2 × 3
## sexo numero_casos promedio_presion
## <chr> <int> <dbl>
## 1 F 53 129.
## 2 M 67 132.
Responder:
¿Qué grupo presenta la presión sistólica media más alta? El grupo masculino con 132.06
¿Cuántos pacientes hay en cada grupo? MAsculino 67 Femenino 53
ggplot2En esta actividad vamos a representar gráficamente la información para facilitar su interpretación.
a) Cantidad de pacientes por departamento
Realizá un gráfico de barras utilizando geom_bar() para
representar la cantidad de pacientes registrados en cada
departamento.
Responder:
Capital
No
Realizá un gráfico de barras subdivididas (apiladas) para representar la cantidad de pacientes con y sin diabetes, diferenciando los resultados según el sexo.
Para ello, utilizá “geom_bar()” y el argumento fill para
distinguir los grupos mediante colores.
Agregá un título y nombres a los ejes utilizando la función “labs()”.
Responder:
El sexo masculino presenta mayor cantidad de pacientes con diabetes
La cantidad de diabéticos dentro de cada sexo
Modificá el gráfico anterior utilizando el argumento
position = "fill" dentro de geom_bar().
De esta manera, las barras representarán el 100 % de los pacientes de cada grupo de sexo y permitirán comparar las proporciones de pacientes con y sin diabetes.
Responder:
¿Qué grupo presenta una mayor proporción de pacientes con diabetes? El grupo masculino
¿Coincide esta comparación con lo que observaste en el gráfico anterior? ¿Por qué? Si.
A partir de los análisis y gráficos realizados, redactá una breve conclusión que describa las principales características de los pacientes incluidos en la base de datos.
No es necesario incluir código en esta sección. Lo importante es comunicar los resultados utilizando la información obtenida durante el análisis.
Conclusion:
Se realizó una exploración y análisis de una base de datos de controles de salud (compuesta por 120 pacientes y 12 variables, con una integridad de datos del 99,8 %)
Podemos caracterizar a la población estudiada de la siguiente manera:
• Perfil demográfico y geográfico: La muestra presenta una leve mayoría de pacientes de sexo masculino (67 hombres frente a 53 mujeres). La edad promedio es de 50,3 años (con una mediana de 54 años). En cuanto a la distribución por departamento de residencia, los pacientes no se reparten de manera uniforme, concentrándose la mayor cantidad de registros en el departamento Capital.
• Indicadores clínicos y factores de riesgo: El valor promedio de glucemia general es de 99,04 mg/dl (única variable con datos faltantes, alcanzando apenas un 2 %). Respecto a la presión arterial sistólica, los hombres registran un promedio ligeramente superior al de las mujeres (132,06 mmHg frente a 129 mmHg). Por otro lado, entre los residentes de Capital, se identificaron un total de 6 pacientes fumadores
• Condición de diabetes según sexo: Tanto en valores absolutos como en términos porcentuales, la presencia de diabetes es mayor en el grupo masculino que en el femenino, aunque en ambos sexos predominan los pacientes sin esta patología.
Hacer clic en Knit para renderizar el documento. Publicarlo en Rpubs.