1. Cargar los paquetes

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().

2. Importar los datos

Consigna: Leé el archivo Excel utilizando read_excel() y guardá la información en un objeto llamado “datos”.

3. Explorar los 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:

  1. Identificar las variables: utilizá la función names() para conocer los nombres de las variables.

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"
  1. Observar la estructura de los datos: utilizá la función glimpse() para visualizar la estructura de la base de datos, conocer los nombres de las variables, sus tipos de datos y algunos de sus valores.

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:

4. Preparar los datos ( Limpieza y transformación de datos)

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.

  1. Aplicá la función clean_names() a la base de datos (nobrada como datos) y guardá el resultado en un nuevo objeto llamado “salud”.
## # 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. 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:

5. Explorar los datos faltantes

  1. Explorar los datos faltantes A veces una base de datos puede contener información que no fue registrada. Estos valores se denominan datos faltantes y se representan como “NA” (Not Available).

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é?

6. Seleccionar variables con la función “select()”

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…

7. Filtrar casos con la función “filter()”

En esta actividad vamos a seleccionar pacientes que cumplan determinadas condiciones.

  1. Pacientes de sexo masculino

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

  1. Pacientes fumadores del departamento Capital

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

8. Medidas de resumen

En esta actividad vamos a calcular algunos indicadores estadísticos descriptivos para conocer mejor las características de los pacientes.

  1. Medidas de resumen generales

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:

En 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:

  1. Distribución de pacientes según la condición de diabetes y el sexo

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:

  1. Comparación de proporciones

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:

10. Comunicar los resultados

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.

11. Para terminar

Hacer clic en Knit para renderizar el documento. Publicarlo en Rpubs.