5. Preparación estadísticas descriptiva variables cuantitativas

Bioestadística DCBMM CUCS/UDG

2024-09-09

Objetivo

Esta presentación tiene como objetivo reforzar algunos conceptos básicos de R

Contenido

  • Scripts
  • Diferencias de los scripts con la consola
  • Proyectos, utilidad
  • Carpetas de trabajo
  • Función cut
  • Creación de variables dentro de un data frame

Scripts

  • Es un archivo de texto que permite la edición y lectura de código

  • La recomendación es que las tareas, apuntes de clase sean creados aquí

Scripts

  • Ventajas:
    • Visualmente más fácil de hacer código
    • Podemos guardar nuestro trabajo.Es más importante guardar como obtener los resultados
    • Podemos insertar comentarios
    • Se puede interpretar una o varias líneas de código
  • Desventajas
    • Necesita ser leido de arriba abajo

    • A veces llamamos objetos que no se encuentra en nuestro script

    • Es necesario tener ordén

Proyectos en Rstudio

Es un maletin que contiene:

  • Objetos

  • Scripts

  • Carpetas

  • Gráficas

  • Bases de datos

  • Etc

Proyectos en Rstudio

Para la clase deberán crear uno o varios proyectos

En cada proyecto deberán cuando mínimo crear las siguientes carpetas

  • Bases
  • Scripts o una carpeta para cada tema/clase
  • Gráficas

¿Dónde vive tu análisis?

R posee el poderoso concepto de directorio de trabajo (working directory en inglés). Aquí es donde R busca los archivos que le pides que lea y donde colocará todos los archivos que le pidas que guarde. RStudio muestra tu directorio de trabajo actual en la parte superior de la consola:

¿Dónde vive tu análisis?

¿Dónde vive tu análisis?

Para conocer en que carpeta están trabajando pueden utilizar el código:

getwd()

Proyecto ejemplo

La función cut

Función cut

cut(x, breaks, labels = NULL,
    include.lowest = FALSE, right = TRUE, dig.lab = 3,
    ordered_result = FALSE, …)

- x: vector numérico

- breaks: puntos de corte, debe ser mayor a 2

- labels: etiquetas de cada categoría

- right: indica hacía donde debe cerrarse el intervalo ]. El valor predeterminado es el izquierdo ( ]

Utilizando la función cut

# Creando un vector
x <- (1:40)
# Mismos criterios de probabilidad
set.seed(1234)
# Obtenienddo una muestra
edad <- sample(x, size = 800, replace = T)

Utilizando la función cut

Utilizando el objeto edad realice cortes de manera que pueda identificar cuantos pacientes tienen una edad menor o igual a 10, de 11 a 30 años incluyendo el 30 y el resto de los pacientes. No cambie las etiquetas de los niveles. Nombre este nuevo objeto como edad1, pida los conteos de los niveles utilizando la función table, realice una gráfica de barras con esta nueva variable.

Utilizando la función cut

edad1 <- cut(x = edad, breaks = c(0, 10, 30, Inf),
             right=T)
table(edad1)
edad1
  (0,10]  (10,30] (30,Inf] 
     170      410      220 
table(edad1==30)

FALSE 
  800 

Utilizando la función cut

barplot(table(edad1))

Utilizando la función cut

  • Cree una nuevo objeto llamado edad2 que contenga los mismo cortes del ejercicio anterior pero cambie el argumento right = F

  • Describa que es lo que pasa

Utilizando la función cut

edad2 <- cut(x = edad, breaks = c(0, 10, 30, Inf),
             right=F)
table(edad2)
edad2
  [0,10)  [10,30) [30,Inf) 
     154      406      240 
table(edad2==30)

FALSE 
  800 

Utilizando la función cut

barplot(table(edad2))

Utilizando la función cut

  1. Cambie las etiquetas de los niveles edad1 y edad2
  2. Cree un factor con la variable edad1 y edad2

Utilizando la función cut

  1. Cambie las etiquetas de los niveles edad1 y edad2
  2. Cree un factor con la variable edad1 y edad2
edad1 <- as.factor(cut(x = edad, breaks = c(0, 10, 30, Inf),
             labels =  c("Grupo edad 1", "Grupo de edad 2", "Grupo de edad 3" ), 
             right=T))
table(edad1)
edad1
   Grupo edad 1 Grupo de edad 2 Grupo de edad 3 
            170             410             220 
levels(edad1)
[1] "Grupo edad 1"    "Grupo de edad 2" "Grupo de edad 3"

Creación de variables

Podemos crear nuevas variables en los data frame utilizando el símbolo $

base_datos$nueva_variable

Creación de variables

  • Utilizando la base de datos Pima.tr2 de la librería MASS corte la variable age de acuerdo con los siguiente criterios:
    • Mujeres menores a 24 años

    • Mujeres de 24 a 33 pero menores de 33

    • Mujeres de 33 a 49

    • Mujeres de 50 a 72

  • Cree un nuevo objeto dentro la base Pima.tr2 y nómbrelo como edad_factor
  • Cambie las etiquetas de edad_factor

Creación de variables

  • Convierta edad_factor un factor
  • Obtenga un conteo de los niveles del objeto edad_factor
  • Cree un gráfico de barras de edad_factor

Creación de variables

library(MASS)
data("Pima.tr2")
Pima.tr2$edad_factor <- cut(Pima.tr2$age, 
                            breaks = c(0, 24, 33, 50, 73),
                            labels = c("Edad 1", "Edad 2", 
                                       "Edad 3", "Edad 4"),
                            right = F)
table(Pima.tr2$edad_factor)

Edad 1 Edad 2 Edad 3 Edad 4 
    65    120     79     36 

Creación de variables

Pima.tr2$edad_factor <- cut(Pima.tr2$age, 
                            breaks = c(0, 24, 33, 50, 73),
                            labels = c("Edad 1", "Edad 2", 
                                       "Edad 3", "Edad 4"),
                            right = F)
table(Pima.tr2$edad_factor)

Edad 1 Edad 2 Edad 3 Edad 4 
    65    120     79     36 
# Comprobamos Edad 1
table(Pima.tr2$age<24)

FALSE  TRUE 
  235    65 
# Comprobamos Edad 2
table(Pima.tr2$age>=24&Pima.tr2$age<33)

FALSE  TRUE 
  180   120 

Creación de variables

Nuestra nueva variable es la última

head(Pima.tr2)
  npreg glu bp skin  bmi   ped age type edad_factor
1     5  86 68   28 30.2 0.364  24   No      Edad 2
2     7 195 70   33 25.1 0.163  55  Yes      Edad 4
3     5  77 82   41 35.8 0.156  35   No      Edad 3
4     0 165 76   43 47.9 0.259  26   No      Edad 2
5     0 107 60   25 26.4 0.133  23   No      Edad 1
6     5  97 76   27 35.6 0.378  52  Yes      Edad 4
str(Pima.tr2)
'data.frame':   300 obs. of  9 variables:
 $ npreg      : int  5 7 5 0 0 5 3 1 3 2 ...
 $ glu        : int  86 195 77 165 107 97 83 193 142 128 ...
 $ bp         : int  68 70 82 76 60 76 58 50 80 78 ...
 $ skin       : int  28 33 41 43 25 27 31 16 15 37 ...
 $ bmi        : num  30.2 25.1 35.8 47.9 26.4 35.6 34.3 25.9 32.4 43.3 ...
 $ ped        : num  0.364 0.163 0.156 0.259 0.133 ...
 $ age        : int  24 55 35 26 23 52 25 24 63 31 ...
 $ type       : Factor w/ 2 levels "No","Yes": 1 2 1 1 1 2 1 1 1 2 ...
 $ edad_factor: Factor w/ 4 levels "Edad 1","Edad 2",..: 2 4 3 2 1 4 2 2 4 2 ...