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"
inserta aquí un chunk
## 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:
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.
## # A tibble: 120 × 12
## id_paciente fecha_control departamento sexo edad peso_kg talla_cm
## <chr> <dttm> <chr> <chr> <dbl> <dbl> <dbl>
## 1 P001 2026-05-15 00:00:00 Andalgalá F 23 68.7 162
## 2 P002 2026-08-19 00:00:00 Valle Viejo F 58 69.6 157
## 3 P003 2026-07-12 00:00:00 Capital M 35 87.8 170
## 4 P004 2026-03-02 00:00:00 Belén M 73 94.8 168
## 5 P005 2026-05-03 00:00:00 Fray Mamerto Es… F 43 62.4 159
## 6 P006 2026-03-09 00:00:00 Fray Mamerto Es… F 57 110. 178
## 7 P007 2026-05-06 00:00:00 Valle Viejo M 65 64.3 167
## 8 P008 2026-09-13 00:00:00 Belén F 66 63.6 150
## 9 P009 2026-06-07 00:00:00 Andalgalá F 21 73.6 166
## 10 P010 2026-08-02 00:00:00 Tinogasta F 29 55.2 150
## # ℹ 110 more rows
## # ℹ 5 more variables: presion_sistolica <dbl>, presion_diastolica <dbl>,
## # glucemia_mg_dl <dbl>, diabetes <chr>, fumador <chr>
## [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:
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? - ¿Cuál es la variable que tiene mayor cantidad de datos faltantes?En la variable glucemia - ¿Considerás que los datos faltantes pueden afectar los resultados de un análisis estadístico? ¿Por qué?
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 × 8
## peso_kg presion_sistolica presion_diastolica departamento glucemia_mg_dl
## <dbl> <dbl> <dbl> <chr> <dbl>
## 1 68.7 113 70 Andalgalá 90
## 2 69.6 126 70 Valle Viejo 91
## 3 87.8 144 66 Capital 78
## 4 94.8 152 85 Belén NA
## 5 62.4 115 80 Fray Mamerto Esq… 100
## 6 110. 146 71 Fray Mamerto Esq… 87
## 7 64.3 122 65 Valle Viejo 82
## 8 63.6 118 69 Belén 86
## 9 73.6 132 63 Andalgalá 85
## 10 55.2 116 62 Tinogasta 98
## # ℹ 110 more rows
## # ℹ 3 more variables: edad <dbl>, sexo <chr>, fumador <chr>
Responder: - ¿Cuántas variables tiene ahora la nueva base de datos?7 - ¿Se modificó la cantidad de pacientes respecto de la base original? (Inserta un nuevo chunk y utiliza la función glimpse para responder esta pregunta)
## Rows: 120
## Columns: 8
## $ peso_kg <dbl> 68.7, 69.6, 87.8, 94.8, 62.4, 110.2, 64.3, 63.6, 73…
## $ presion_sistolica <dbl> 113, 126, 144, 152, 115, 146, 122, 118, 132, 116, 1…
## $ presion_diastolica <dbl> 70, 70, 66, 85, 80, 71, 65, 69, 63, 62, 64, 77, 84,…
## $ departamento <chr> "Andalgalá", "Valle Viejo", "Capital", "Belén", "Fr…
## $ glucemia_mg_dl <dbl> 90, 91, 78, NA, 100, 87, 82, 86, 85, 98, 70, 184, 1…
## $ edad <dbl> 23, 58, 35, 73, 43, 57, 65, 66, 21, 29, 47, 59, 80,…
## $ sexo <chr> "F", "F", "M", "M", "F", "F", "M", "F", "F", "F", "…
## $ fumador <chr> "No", "No", "No", "No", "No", "Sí", "No", "No", "No…
inserta un nuevo chunck
## Rows: 120
## Columns: 8
## $ peso_kg <dbl> 68.7, 69.6, 87.8, 94.8, 62.4, 110.2, 64.3, 63.6, 73…
## $ presion_sistolica <dbl> 113, 126, 144, 152, 115, 146, 122, 118, 132, 116, 1…
## $ presion_diastolica <dbl> 70, 70, 66, 85, 80, 71, 65, 69, 63, 62, 64, 77, 84,…
## $ departamento <chr> "Andalgalá", "Valle Viejo", "Capital", "Belén", "Fr…
## $ glucemia_mg_dl <dbl> 90, 91, 78, NA, 100, 87, 82, 86, 85, 98, 70, 184, 1…
## $ edad <dbl> 23, 58, 35, 73, 43, 57, 65, 66, 21, 29, 47, 59, 80,…
## $ sexo <chr> "F", "F", "M", "M", "F", "F", "M", "F", "F", "F", "…
## $ fumador <chr> "No", "No", "No", "No", "No", "Sí", "No", "No", "No…
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”)
## # A tibble: 67 × 8
## peso_kg presion_sistolica presion_diastolica departamento glucemia_mg_dl
## <dbl> <dbl> <dbl> <chr> <dbl>
## 1 87.8 144 66 Capital 78
## 2 94.8 152 85 Belén NA
## 3 64.3 122 65 Valle Viejo 82
## 4 87.3 129 64 Capital 70
## 5 66 156 78 Valle Viejo 81
## 6 84.2 107 80 Valle Viejo 98
## 7 68.4 125 58 Andalgalá 67
## 8 114. 107 89 Tinogasta 101
## 9 76.5 137 74 Tinogasta 88
## 10 54.3 136 72 Capital NA
## # ℹ 57 more rows
## # ℹ 3 more variables: edad <dbl>, sexo <chr>, fumador <chr>
Responder: - ¿Cuántos pacientes de sexo masculino hay en la base de datos? 67
Filtrar a los pacientes que sean “fumadores” y pertenezcan al departamento “Capital”.
Ayuda:
objeto |> filter(fumadores == "Sí", departamento == "Capital")
## # A tibble: 4 × 8
## peso_kg presion_sistolica presion_diastolica departamento glucemia_mg_dl edad
## <dbl> <dbl> <dbl> <chr> <dbl> <dbl>
## 1 73.3 98 56 Capital 93 24
## 2 71.8 159 76 Capital 94 73
## 3 99.7 155 75 Capital 138 73
## 4 101. 116 68 Capital 106 68
## # ℹ 2 more variables: sexo <chr>, fumador <chr>
Responder: - ¿Cuántos pacientes cumplen ambas condiciones?4
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] NA
## NULL
## NULL
## [1] NA
Responder:
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 `mean(presion_sistolica)` n
## <chr> <dbl> <int>
## 1 F 129. 53
## 2 M 132. 67
Responder:
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:
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:
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:
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.
Hacer clic en Knit para renderizar el documento. Publicarlo en Rpubs.