Al finalizar este tutorial, serás capaz de:
Un Script es un archivo donde escribes y guardas tu código. Esto permite documentar, reutilizar y compartir tu trabajo.
El directorio de trabajo es donde R busca archivos y guarda resultados.
# Muestra el directorio de trabajo actual
getwd()
## [1] "C:/Users/gfguevara/OneDrive - UNIVERSIDAD DR. JOSE MATIAS DELGADO/Matias/Ciclo II - 2025/BIE-25/Tutoriales/base_CAP"
La forma más sencilla de fijar tu directorio es ir a: Session > Set Working Directory > To Source File Location
En R, todo lo que sigue a # es un comentario.
# Esto es un comentario
# La función rm() limpia todos los objetos de la memoria
rm(list = ls()) # Este es un comentario en la misma línea
Para entenderlo el código anterior se descompone en dos partes que funcionan de adentro hacia afuera:
ls(): Esta función por sí sola lista (de ahí “ls”) todos los objetos (variables, data frames, funciones, etc.) que has creado en tu entorno actual. Te devuelve un vector con los nombres de todos esos objetos.
rm(…): Esta función se usa para eliminar (del inglés remove) objetos. Le pasas los nombres de los objetos que quieres borrar.
Al combinar rm(list = ls()), le estás diciendo a R: “Primero, ls() para obtener una lista de todo lo que hay en la memoria. Luego, pasa esa lista completa a la función rm() para que borre cada uno de esos objetos”.
Es buena práctica limpiar el entorno al inicio de cada script.
R respeta el orden de operaciones estándar (PEMDAS: Paréntesis, Exponentes, Multiplicación/División, Adición/Sustracción).
# Operaciones básicas
3 + 5 * 2
## [1] 13
# Usar paréntesis para cambiar el orden
(3 + 5) * 2
## [1] 16
# Potencias con ^
2^3
## [1] 8
Las variables sirven para almacenar un valor que luego vamos a utilizar en algún procedimiento.
Para hacer la asignación de un valor a alguna variable se utiliza el operador <- entre el valor y el nombre de la variable. A continuación un ejemplo sencillo.
# Asignar el valor 10 al objeto 'x'
x <- 10
# Usar objetos en operaciones
y <- x * 2
# Imprimir 'y'
y
## [1] 20
Nota: En R, se recomienda usar <- para asignaciones en lugar de =, aunque ambos funcionan.
a <- 10.5 # Numérico (decimal)
b <- 20L # Numérico (entero, se especifica con L)
c <- "Hola" # Texto (character)
d <- TRUE # Lógico (TRUE/FALSE)
class(a)
## [1] "numeric"
class(c)
## [1] "character"
class(d)
## [1] "logical"
El comando class(a) en R te dice cuál es el tipo de dato o la estructura del objeto llamado a.
En pocas palabras, es como preguntarle a R: “Oye, ¿qué clase de cosa es este objeto a?”
Los vectores son arreglos ordenados en los cuales se puede almacenar información de tipo numérico (variable cuantitativa), alfanumérico (variable cualitativa) o lógico (TRUE o FALSE), pero no mezclas de éstos. La función de R para crear un vector es c() y que significa concatenar; dentro de los paréntesis de esta función se ubica la información a almacenar. Una vez construído el vector se acostumbra a etiquetarlo con un nombre corto y representativo de la información que almacena, la asignación se hace por medio del operador <- entre el nombre y el vector.
# Vector numérico
edades <- c(25, 31, 23, 52)
edades
## [1] 25 31 23 52
# Vector de texto
nombres <- c("Ana", "Luis", "Eva", "Juan")
nombres
## [1] "Ana" "Luis" "Eva" "Juan"
# Secuencia numérica
mi_secuencia <- 1:9
mi_secuencia
## [1] 1 2 3 4 5 6 7 8 9
Las matrices son arreglos rectangulares de filas y columnas con información numérica, alfanumérica o lógica. Para construir una matriz se usa la función matrix( ).
mi_matriz <- matrix(1:9, nrow = 3)
mi_matriz
## [,1] [,2] [,3]
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9
# Usando cbind() y rbind()
columna1 <- c(1, 2, 3)
columna2 <- c(4, 5, 6)
columna3 <- c(7, 8, 9)
matriz_columnas <- cbind(columna1, columna2, columna3)
matriz_columnas
## columna1 columna2 columna3
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9
matriz_filas <- rbind(columna1, columna2, columna3)
matriz_filas
## [,1] [,2] [,3]
## columna1 1 2 3
## columna2 4 5 6
## columna3 7 8 9
El marco de datos marco de datos o data frame es uno de los objetos más utilizados porque permite agrupar vectores con información de diferente tipo (numérica, alfanumérica o lógica) en un mismo objeto, la única restricción es que los vectores deben tener la misma longitud. Para crear un marco de datos se usa la función data.frame( )
# Data frame
df_pacientes <- data.frame(
nombre = nombres,
edad = edades,
registrado = c(TRUE, FALSE, TRUE, TRUE)
)
df_pacientes
## nombre edad registrado
## 1 Ana 25 TRUE
## 2 Luis 31 FALSE
## 3 Eva 23 TRUE
## 4 Juan 52 TRUE
Podemos ampliar las capacidades de R usando “paquetes” (también conocidos como librerías), que son colecciones de funciones y datos que otras personas han creado y compartido.
Piénsalo como instalar aplicaciones en tu teléfono. R viene con herramientas básicas, pero si quieres hacer algo más específico (como leer archivos de Excel), necesitas instalar un “paquete” que añada esa funcionalidad.
# Instalar paquete (solo se ejecuta una vez)
install.packages("readxl", repos = "https://cran.rstudio.com/")
## Installing package into 'C:/Users/gfguevara/AppData/Local/R/win-library/4.5'
## (as 'lib' is unspecified)
## package 'readxl' successfully unpacked and MD5 sums checked
##
## The downloaded binary packages are in
## C:\Users\gfguevara\AppData\Local\Temp\RtmpAvpx4r\downloaded_packages
Este comando instala el paquete.
install.packages(): Es la función que le dice a R: “Ve a internet, busca este paquete y descárgalo en mi computadora”.
“readxl”: Es el nombre del paquete que quieres instalar. En este caso, readxl es un paquete muy popular que sirve específicamente para leer datos desde archivos de Microsoft Excel (.xls y .xlsx).
Este paso solo necesitas hacerlo una vez por cada computadora (o cada vez que actualices R). Una vez que el paquete está instalado, ya vive en tu sistema.
El código library(readxl) activa o carga el paquete readxl en tu sesión actual de R, permitiéndote usar todas las funciones que contiene.
Piénsalo como sacar una herramienta específica de tu caja de herramientas. Ya tienes la herramienta (el paquete fue instalado previamente con install.packages()), pero necesitas tenerla en la mano para poder usarla.
# Cargar paquete
library(readxl)
Desglose del Comando library(): Es la función que le dice a R: “Prepara para su uso el siguiente paquete que ya tengo instalado”.
readxl: Es el nombre del paquete que quieres activar. Este paquete en particular contiene funciones para leer archivos de Microsoft Excel (formatos .xls y .xlsx), como la popular función read_excel().
R no carga todos los paquetes que tienes instalados al mismo tiempo. Hacerlo consumiría mucha memoria y podría crear conflictos entre funciones de distintos paquetes que se llamen igual.
Por eso, debes indicarle explícitamente qué “librerías” de funciones necesitas para tu análisis en cada sesión. Si intentaras usar la función read_excel() sin antes haber ejecutado library(readxl), R te daría un error diciendo que no puede encontrar esa función.
Uno de los pasos más importantes en el análisis de datos es importar un conjunto de datos a R para poder trabajar con él.
Descarga el archivo desde el repositorio siguiente: https://github.com/gfguevara/base_CAP/raw/refs/heads/main/CAP.xlsx
# Cargar el archivo desde la carpeta local
datos_cap <- read_excel("CAP.xlsx")
## New names:
## • `otros` -> `otros...71`
## • `otros` -> `otros...85`
# Primeras 6 filas
head(datos_cap)
## # A tibble: 6 × 86
## id part_prev municipio edad genero nivel_edu enf_cro tipo_enfcro ninguna
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <chr> <dbl>
## 1 1 0 6 52 0 0 0 Ninguna 1
## 2 2 1 6 50 1 1 1 Diabetes 0
## 3 3 0 6 27 0 4 0 Ninguna 1
## 4 4 0 6 50 1 3 0 Ninguna 1
## 5 5 0 6 47 0 3 1 Hipertensión 0
## 6 6 0 6 47 1 2 1 Hipertensión 0
## # ℹ 77 more variables: hipertension <dbl>, diabetes <dbl>, epoc <dbl>,
## # renal <dbl>, artritis <dbl>, cardiopatia <dbl>, hipotiroidismo <dbl>,
## # glaucoma <dbl>, lupus <dbl>, ulcera_venosa <dbl>,
## # `Otras enfermedades crónicas, especifique` <chr>, area <dbl>, hijxs <dbl>,
## # nucleo <dbl>, empleo <dbl>, ocupacion <dbl>, ingreso <dbl>, prev_per <dbl>,
## # rec_apoyo <dbl>, satisfaccion <dbl>, prev_fam <dbl>, mortalidad <dbl>,
## # c1 <dbl>, c2 <dbl>, c3 <dbl>, c4 <dbl>, c5 <dbl>, c6 <dbl>, c7 <dbl>, …
# Dimensiones (filas, columnas)
dim(datos_cap)
## [1] 515 86
# Estructura del data frame
str(datos_cap)
## tibble [515 × 86] (S3: tbl_df/tbl/data.frame)
## $ id : num [1:515] 1 2 3 4 5 6 7 8 9 10 ...
## $ part_prev : num [1:515] 0 1 0 0 0 0 1 0 1 0 ...
## $ municipio : num [1:515] 6 6 6 6 6 6 6 6 6 6 ...
## $ edad : num [1:515] 52 50 27 50 47 47 33 21 37 29 ...
## $ genero : num [1:515] 0 1 0 1 0 1 0 0 1 1 ...
## $ nivel_edu : num [1:515] 0 1 4 3 3 2 4 3 2 4 ...
## $ enf_cro : num [1:515] 0 1 0 0 1 1 0 0 1 0 ...
## $ tipo_enfcro : chr [1:515] "Ninguna" "Diabetes" "Ninguna" "Ninguna" ...
## $ ninguna : num [1:515] 1 0 1 1 0 0 1 1 0 1 ...
## $ hipertension : num [1:515] 0 0 0 0 1 1 0 0 1 0 ...
## $ diabetes : num [1:515] 0 1 0 0 0 1 0 0 0 0 ...
## $ epoc : num [1:515] 0 0 0 0 0 0 0 0 0 0 ...
## $ renal : num [1:515] 0 0 0 0 0 0 0 0 0 0 ...
## $ artritis : num [1:515] 0 0 0 0 0 0 0 0 0 0 ...
## $ cardiopatia : num [1:515] 0 0 0 0 0 0 0 0 0 0 ...
## $ hipotiroidismo : num [1:515] 0 0 0 0 0 0 0 0 0 0 ...
## $ glaucoma : num [1:515] 0 0 0 0 0 0 0 0 0 0 ...
## $ lupus : num [1:515] 0 0 0 0 0 0 0 0 0 0 ...
## $ ulcera_venosa : num [1:515] 0 0 0 0 0 0 0 0 0 0 ...
## $ Otras enfermedades crónicas, especifique: chr [1:515] NA NA NA NA ...
## $ area : num [1:515] 1 0 0 1 1 0 1 0 1 1 ...
## $ hijxs : num [1:515] 1 1 1 0 1 1 1 1 1 1 ...
## $ nucleo : num [1:515] 5 2 5 3 4 5 3 2 3 3 ...
## $ empleo : num [1:515] 0 1 0 1 1 0 1 0 1 1 ...
## $ ocupacion : num [1:515] 0 1 0 4 4 0 3 0 1 1 ...
## $ ingreso : num [1:515] 1 0 2 1 0 1 3 1 2 0 ...
## $ prev_per : num [1:515] 0 3 0 0 0 0 0 0 1 1 ...
## $ rec_apoyo : num [1:515] 3 0 3 3 3 3 3 3 2 2 ...
## $ satisfaccion : num [1:515] 5 5 5 5 5 5 5 5 3 4 ...
## $ prev_fam : num [1:515] 2 0 0 0 0 3 0 3 1 1 ...
## $ mortalidad : num [1:515] 0 0 0 0 0 0 0 0 1 0 ...
## $ c1 : num [1:515] 3 1 1 1 1 1 1 1 1 1 ...
## $ c2 : num [1:515] 2 1 1 1 1 1 1 1 1 1 ...
## $ c3 : num [1:515] 3 1 3 1 1 3 1 3 3 1 ...
## $ c4 : num [1:515] 1 1 1 1 1 1 1 3 3 1 ...
## $ c5 : num [1:515] 1 3 1 1 3 1 3 3 3 2 ...
## $ c6 : num [1:515] 1 1 2 1 1 2 1 2 2 1 ...
## $ c7 : num [1:515] 3 3 2 2 3 1 1 3 1 1 ...
## $ c8 : num [1:515] 1 1 1 1 1 1 1 1 1 1 ...
## $ c9 : num [1:515] 1 1 2 1 1 1 1 1 1 1 ...
## $ c10 : num [1:515] 2 1 1 2 1 1 1 1 1 1 ...
## $ a1 : num [1:515] 5 4 5 5 4 3 4 3 2 5 ...
## $ a2 : num [1:515] 5 5 5 5 4 3 4 3 5 5 ...
## $ a3 : num [1:515] 1 2 5 5 3 1 4 1 2 4 ...
## $ a4 : num [1:515] 5 5 5 5 4 5 4 5 5 4 ...
## $ a5 : num [1:515] 1 3 5 1 4 4 4 1 3 4 ...
## $ p1 : num [1:515] 5 3 5 5 1 4 3 3 3 2 ...
## $ p2 : num [1:515] 2 0 3 3 0 2 0 2 2 0 ...
## $ p3 : num [1:515] 3 0 2 3 0 3 0 2 2 0 ...
## $ p4 : num [1:515] 5 1 5 3 1 3 1 3 3 1 ...
## $ p5 : num [1:515] 5 1 3 2 3 3 3 2 5 3 ...
## $ dosis : num [1:515] 3 3 4 3 2 2 2 1 4 3 ...
## $ razon_nv : num [1:515] 5 6 1 6 6 6 6 6 1 6 ...
## $ fuentes : chr [1:515] "Periódico, Televisión, Radio, Otro medio, especificar" "Televisión, Redes sociales: WhatsApp, Facebook, etc." "Televisión, Redes sociales: WhatsApp, Facebook, etc., Radio, Páginas de internet" "Periódico, Televisión, Páginas de internet" ...
## $ periodico : num [1:515] 1 0 0 1 0 1 0 0 1 0 ...
## $ television : num [1:515] 1 1 1 1 0 1 1 1 1 0 ...
## $ redes_sociales : num [1:515] 0 1 1 0 1 0 1 1 0 1 ...
## $ personal_salud : num [1:515] 0 0 0 0 0 0 0 0 0 0 ...
## $ radio : num [1:515] 1 0 1 0 0 1 0 0 1 0 ...
## $ paginas_internet : num [1:515] 0 0 1 1 0 0 0 0 0 1 ...
## $ escuela : num [1:515] 1 0 0 0 0 0 0 0 0 0 ...
## $ mensajes : num [1:515] 1 1 1 1 1 1 1 1 1 1 ...
## $ patrocinio : num [1:515] 5 2 6 1 1 1 2 1 2 1 ...
## $ mensajes_rec : chr [1:515] "Uso de la mascarilla, El distanciamiento social, Ponerse la vacuna" "Uso de la mascarilla, Lavado de manos" "Uso de la mascarilla, El distanciamiento social, Lavado de manos" "Uso de la mascarilla, El distanciamiento social, Ponerse la vacuna" ...
## $ uso_de_mascarilla : num [1:515] 1 1 1 1 0 0 0 0 1 1 ...
## $ distanciamiento_social : num [1:515] 1 0 1 1 1 0 1 0 1 0 ...
## $ lavado_de_manos : num [1:515] 0 1 1 0 1 0 1 0 1 1 ...
## $ ponerse_la_vacuna : num [1:515] 1 0 0 1 1 0 0 0 0 1 ...
## $ no_recuerdo : num [1:515] 0 0 0 0 0 0 0 1 0 0 ...
## $ todas : num [1:515] 0 0 0 0 0 1 0 0 0 0 ...
## $ otros...71 : num [1:515] 0 0 0 0 0 0 0 0 0 0 ...
## $ No_he_escuchado : num [1:515] 0 0 0 0 0 0 0 0 0 0 ...
## $ mitos : chr [1:515] "El virus se transmite por el agua por eso no se deben usar las piscinas, El virus se transmite en las suelas de"| __truncated__ "Otros" "Se debe rociar desinfectantes en la ropa y el cuerpo para protegerse del virus, No se debe vacunar a las person"| __truncated__ "El virus se transmite por el agua por eso no se deben usar las piscinas, El virus se transmite en las suelas de"| __truncated__ ...
## $ transmite_por_el_agua : num [1:515] 1 0 0 1 0 1 0 1 1 0 ...
## $ transmite_en_las_suelas : num [1:515] 1 0 0 1 0 1 0 1 1 0 ...
## $ rociar_desinfectantes : num [1:515] 1 0 1 1 0 1 0 1 1 0 ...
## $ beben_alcohol : num [1:515] 0 0 0 1 0 0 0 0 0 0 ...
## $ pueden_dejar_de_aplicar : num [1:515] 1 0 0 0 0 0 0 1 0 0 ...
## $ no_se_debe_vacunar : num [1:515] 0 0 1 1 1 0 1 0 0 1 ...
## $ producen_esterilidad : num [1:515] 0 0 0 0 0 0 1 0 0 0 ...
## $ producen_homosexualidad : num [1:515] 0 1 0 0 0 0 0 0 0 0 ...
## $ inyectan_el_virus : num [1:515] 0 0 1 1 0 1 0 0 0 0 ...
## $ antibióticos_son_buenos : num [1:515] 0 0 0 1 0 1 0 1 1 0 ...
## $ vitaminas_y_minerales : num [1:515] 0 0 0 0 0 0 0 1 1 0 ...
## $ otros...85 : num [1:515] 0 1 0 0 0 0 0 0 0 0 ...
## $ entrevistadoras : num [1:515] 2 1 2 2 1 2 1 2 2 1 ...
# Resumen estadístico
summary(datos_cap)
## id part_prev municipio edad
## Min. : 1.0 Min. :0.00000 Min. :1.000 Min. :19.00
## 1st Qu.:129.5 1st Qu.:0.00000 1st Qu.:3.500 1st Qu.:30.00
## Median :258.0 Median :0.00000 Median :6.000 Median :40.00
## Mean :258.0 Mean :0.08932 Mean :4.849 Mean :42.37
## 3rd Qu.:386.5 3rd Qu.:0.00000 3rd Qu.:6.000 3rd Qu.:55.00
## Max. :515.0 Max. :1.00000 Max. :7.000 Max. :89.00
##
## genero nivel_edu enf_cro tipo_enfcro
## Min. :0.000 Min. :0.00 Min. :0.000 Length:515
## 1st Qu.:0.000 1st Qu.:2.00 1st Qu.:0.000 Class :character
## Median :0.000 Median :3.00 Median :0.000 Mode :character
## Mean :0.435 Mean :3.21 Mean :0.334
## 3rd Qu.:1.000 3rd Qu.:4.00 3rd Qu.:1.000
## Max. :1.000 Max. :6.00 Max. :2.000
##
## ninguna hipertension diabetes epoc
## Min. :0.0000 Min. :0.0000 Min. :0.0000 Min. :0.000000
## 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.000000
## Median :1.0000 Median :0.0000 Median :0.0000 Median :0.000000
## Mean :0.6757 Mean :0.2563 Mean :0.1165 Mean :0.007767
## 3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:0.0000 3rd Qu.:0.000000
## Max. :1.0000 Max. :1.0000 Max. :1.0000 Max. :1.000000
##
## renal artritis cardiopatia hipotiroidismo
## Min. :0.00000 Min. :0.00000 Min. :0.000000 Min. :0.000000
## 1st Qu.:0.00000 1st Qu.:0.00000 1st Qu.:0.000000 1st Qu.:0.000000
## Median :0.00000 Median :0.00000 Median :0.000000 Median :0.000000
## Mean :0.01942 Mean :0.01942 Mean :0.001942 Mean :0.001942
## 3rd Qu.:0.00000 3rd Qu.:0.00000 3rd Qu.:0.000000 3rd Qu.:0.000000
## Max. :1.00000 Max. :1.00000 Max. :1.000000 Max. :1.000000
##
## glaucoma lupus ulcera_venosa
## Min. :0.000000 Min. :0.000000 Min. :0.000000
## 1st Qu.:0.000000 1st Qu.:0.000000 1st Qu.:0.000000
## Median :0.000000 Median :0.000000 Median :0.000000
## Mean :0.001946 Mean :0.001942 Mean :0.001942
## 3rd Qu.:0.000000 3rd Qu.:0.000000 3rd Qu.:0.000000
## Max. :1.000000 Max. :1.000000 Max. :1.000000
## NA's :1
## Otras enfermedades crónicas, especifique area hijxs
## Length:515 Min. :0.0000 Min. :0.000
## Class :character 1st Qu.:0.0000 1st Qu.:0.000
## Mode :character Median :1.0000 Median :1.000
## Mean :0.6408 Mean :0.635
## 3rd Qu.:1.0000 3rd Qu.:1.000
## Max. :1.0000 Max. :1.000
##
## nucleo empleo ocupacion ingreso
## Min. : 1.00 Min. :0.000 Min. : 0.000 Min. :0.0000
## 1st Qu.: 3.00 1st Qu.:1.000 1st Qu.: 1.000 1st Qu.:0.0000
## Median : 4.00 Median :1.000 Median : 3.000 Median :1.0000
## Mean : 5.67 Mean :1.021 Mean : 3.771 Mean :0.9223
## 3rd Qu.: 5.00 3rd Qu.:1.000 3rd Qu.: 6.000 3rd Qu.:2.0000
## Max. :999.00 Max. :3.000 Max. :10.000 Max. :4.0000
##
## prev_per rec_apoyo satisfaccion prev_fam
## Min. :0.0000 Min. : 0.00 Min. :2.000 Min. :0.0000
## 1st Qu.:0.0000 1st Qu.: 1.00 1st Qu.:3.000 1st Qu.:0.0000
## Median :0.0000 Median : 3.00 Median :5.000 Median :0.0000
## Mean :0.4738 Mean : 29.43 Mean :4.278 Mean :0.7709
## 3rd Qu.:1.0000 3rd Qu.: 3.00 3rd Qu.:5.000 3rd Qu.:1.0000
## Max. :3.0000 Max. :999.00 Max. :5.000 Max. :3.0000
##
## mortalidad c1 c2 c3
## Min. :0.00000 Min. :1.000 Min. :1.000 Min. :1.000
## 1st Qu.:0.00000 1st Qu.:1.000 1st Qu.:1.000 1st Qu.:1.000
## Median :0.00000 Median :1.000 Median :1.000 Median :1.000
## Mean :0.04466 Mean :1.066 Mean :1.151 Mean :1.645
## 3rd Qu.:0.00000 3rd Qu.:1.000 3rd Qu.:1.000 3rd Qu.:2.000
## Max. :1.00000 Max. :3.000 Max. :3.000 Max. :3.000
##
## c4 c5 c6 c7 c8
## Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.00 Min. :1.000
## 1st Qu.:1.000 1st Qu.:1.000 1st Qu.:1.000 1st Qu.:1.00 1st Qu.:1.000
## Median :1.000 Median :2.000 Median :1.000 Median :2.00 Median :1.000
## Mean :1.171 Mean :2.155 Mean :1.301 Mean :1.94 Mean :1.037
## 3rd Qu.:1.000 3rd Qu.:3.000 3rd Qu.:2.000 3rd Qu.:3.00 3rd Qu.:1.000
## Max. :3.000 Max. :3.000 Max. :3.000 Max. :3.00 Max. :3.000
##
## c9 c10 a1 a2 a3
## Min. :1.000 Min. :1.000 Min. :2.000 Min. :1.000 Min. :1.00
## 1st Qu.:1.000 1st Qu.:1.000 1st Qu.:3.000 1st Qu.:3.000 1st Qu.:1.00
## Median :1.000 Median :2.000 Median :4.000 Median :4.000 Median :2.00
## Mean :1.091 Mean :2.062 Mean :3.986 Mean :4.033 Mean :2.25
## 3rd Qu.:1.000 3rd Qu.:3.000 3rd Qu.:5.000 3rd Qu.:5.000 3rd Qu.:3.00
## Max. :3.000 Max. :3.000 Max. :5.000 Max. :5.000 Max. :5.00
##
## a4 a5 p1 p2 p3
## Min. :1.000 Min. :1.00 Min. :0.000 Min. :0.000 Min. :0.000
## 1st Qu.:3.000 1st Qu.:2.00 1st Qu.:1.000 1st Qu.:0.500 1st Qu.:0.000
## Median :4.000 Median :3.00 Median :2.000 Median :1.000 Median :1.000
## Mean :3.808 Mean :2.75 Mean :2.468 Mean :1.579 Mean :1.524
## 3rd Qu.:5.000 3rd Qu.:3.00 3rd Qu.:4.000 3rd Qu.:3.000 3rd Qu.:3.000
## Max. :5.000 Max. :5.00 Max. :5.000 Max. :5.000 Max. :5.000
##
## p4 p5 dosis razon_nv
## Min. :0.000 Min. :0.000 Min. :0.000 Min. : 1.000
## 1st Qu.:1.000 1st Qu.:2.000 1st Qu.:2.000 1st Qu.: 5.000
## Median :3.000 Median :3.000 Median :2.000 Median : 5.000
## Mean :2.936 Mean :3.103 Mean :2.355 Mean : 4.746
## 3rd Qu.:5.000 3rd Qu.:4.000 3rd Qu.:3.000 3rd Qu.: 6.000
## Max. :5.000 Max. :5.000 Max. :4.000 Max. :11.000
##
## fuentes periodico television redes_sociales
## Length:515 Min. :0.0000 Min. :0.0000 Min. :0.0000
## Class :character 1st Qu.:0.0000 1st Qu.:1.0000 1st Qu.:1.0000
## Mode :character Median :0.0000 Median :1.0000 Median :1.0000
## Mean :0.1107 Mean :0.8408 Mean :0.7592
## 3rd Qu.:0.0000 3rd Qu.:1.0000 3rd Qu.:1.0000
## Max. :1.0000 Max. :1.0000 Max. :1.0000
##
## personal_salud radio paginas_internet escuela
## Min. :0.0000 Min. :0.0000 Min. :0.0000 Min. :0.000000
## 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.000000
## Median :0.0000 Median :0.0000 Median :0.0000 Median :0.000000
## Mean :0.1243 Mean :0.1786 Mean :0.2233 Mean :0.001942
## 3rd Qu.:0.0000 3rd Qu.:0.0000 3rd Qu.:0.0000 3rd Qu.:0.000000
## Max. :1.0000 Max. :1.0000 Max. :1.0000 Max. :1.000000
##
## mensajes patrocinio mensajes_rec uso_de_mascarilla
## Min. :0.0000 Min. :1.000 Length:515 Min. :0.0000
## 1st Qu.:0.0000 1st Qu.:1.000 Class :character 1st Qu.:0.0000
## Median :1.0000 Median :7.000 Mode :character Median :0.0000
## Mean :0.8252 Mean :4.297 Mean :0.4136
## 3rd Qu.:1.0000 3rd Qu.:7.000 3rd Qu.:1.0000
## Max. :2.0000 Max. :7.000 Max. :1.0000
##
## distanciamiento_social lavado_de_manos ponerse_la_vacuna no_recuerdo
## Min. :0.0000 Min. :0.0000 Min. :0.0000 Min. :0.000000
## 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.000000
## Median :1.0000 Median :1.0000 Median :0.0000 Median :0.000000
## Mean :0.5592 Mean :0.6155 Mean :0.2621 Mean :0.009709
## 3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:0.000000
## Max. :1.0000 Max. :1.0000 Max. :1.0000 Max. :1.000000
##
## todas otros...71 No_he_escuchado mitos
## Min. :0.0000 Min. :0.000000 Min. :0.00000 Length:515
## 1st Qu.:0.0000 1st Qu.:0.000000 1st Qu.:0.00000 Class :character
## Median :0.0000 Median :0.000000 Median :0.00000 Mode :character
## Mean :0.2854 Mean :0.007767 Mean :0.06408
## 3rd Qu.:1.0000 3rd Qu.:0.000000 3rd Qu.:0.00000
## Max. :1.0000 Max. :1.000000 Max. :1.00000
##
## transmite_por_el_agua transmite_en_las_suelas rociar_desinfectantes
## Min. :0.0000 Min. :0.0000 Min. :0.0000
## 1st Qu.:0.0000 1st Qu.:1.0000 1st Qu.:0.0000
## Median :1.0000 Median :1.0000 Median :1.0000
## Mean :0.7184 Mean :0.8544 Mean :0.6175
## 3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:1.0000
## Max. :1.0000 Max. :1.0000 Max. :1.0000
##
## beben_alcohol pueden_dejar_de_aplicar no_se_debe_vacunar
## Min. :0.0000 Min. :0.0000 Min. :0.0000
## 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.0000
## Median :0.0000 Median :0.0000 Median :0.0000
## Mean :0.1981 Mean :0.1359 Mean :0.1495
## 3rd Qu.:0.0000 3rd Qu.:0.0000 3rd Qu.:0.0000
## Max. :1.0000 Max. :1.0000 Max. :1.0000
##
## producen_esterilidad producen_homosexualidad inyectan_el_virus
## Min. :0.00000 Min. :0.00000 Min. :0.0
## 1st Qu.:0.00000 1st Qu.:0.00000 1st Qu.:0.0
## Median :0.00000 Median :0.00000 Median :1.0
## Mean :0.08738 Mean :0.01165 Mean :0.6
## 3rd Qu.:0.00000 3rd Qu.:0.00000 3rd Qu.:1.0
## Max. :1.00000 Max. :1.00000 Max. :1.0
##
## antibióticos_son_buenos vitaminas_y_minerales otros...85
## Min. :0.0000 Min. :0.000 Min. :0.00000
## 1st Qu.:0.0000 1st Qu.:0.000 1st Qu.:0.00000
## Median :0.0000 Median :0.000 Median :0.00000
## Mean :0.4699 Mean :0.435 Mean :0.05243
## 3rd Qu.:1.0000 3rd Qu.:1.000 3rd Qu.:0.00000
## Max. :1.0000 Max. :1.000 Max. :1.00000
##
## entrevistadoras
## Min. :1.000
## 1st Qu.:1.000
## Median :2.000
## Mean :1.736
## 3rd Qu.:2.000
## Max. :3.000
##
También pudes crear gráficos en R de dos maneras:
Opción 1: Con R Base (Rápido y directo) Esta es la forma más directa de crear un boxplot. Solo necesitas una línea de código usando la función boxplot().
Para acceder a la columna edad del data frame datos_cap, se usa el símbolo $.
# Generar el boxplot básico
boxplot(datos_cap$edad)
# Boxplot con mejoras (título, etiqueta en el eje Y y color)
boxplot(datos_cap$edad,
main = "Distribución de la Edad",
ylab = "Edad (años)",
col = "lightblue")
Opción 2: Con el Paquete ggplot2 (Más Elegante y Flexible) ggplot2 es el paquete más popular para visualización de datos en R. Permite crear gráficos más estéticos y es muy potente para personalizarlos.
Primero, asegúrate de tenerlo instalado y cargado.
# 1. Instalar (si no lo tienes) - Solo se hace una vez
# install.packages("ggplot2")
# 2. Cargar el paquete en tu sesión
library(ggplot2)
# 3. Crear el gráfico
ggplot(data = datos_cap, aes(y = edad)) +
geom_boxplot(fill = "skyblue", color = "black") +
labs(title = "Distribución de la Edad de los Participantes",
y = "Edad (años)",
x = "") + # Oculta la etiqueta del eje X que no es necesaria aquí
theme_minimal()
¡Felicidades! Has completado la primera parte del tutorial de introducción a R. Ahora ya puedes manipular y explorar datos en R.