En el marco de un análisis sobre la salud de los nuevos estudiantes de la UC, extraeremos una muestra consistente en 1000 alumnos a los que se somete a una encuesta compuesta de las siguientes variables:

  1. peso: los valores deben situarse entre 59 y 115 kg.
  2. altura: los valores deben situarse entre 161 y 196 cm.
  3. edad: los valores deben situarse entre 18 y 25, con repetición.
  4. sexo: dos categorías, 1 (hombre) y 2 (mujer).
  5. procedencia: las etiquetas de las categorías serán Bahía, Besaya, Campoo, Zona Oriental, Zona Occidental, Foráneos. Los porcentajes correspondientes a cada categoría son los siguientes 45%, 20%, 5%, 15%, 10% y 5%. Las etiquetas se pueden repetir.
  6. variable 6: números del 1 al 5 con repetición. Las probabilidades correspondientes a cada una de ellas son 25, 20, 25, 5 y 25 %.
  7. variable 7: números del 1 al 3 con repetición. Las probabilidades correspondientes a cada una de ellas son 15, 35, y 50 %.
  8. grupo sanguíneo: las etiquetas serán O+, A+, B+, AB+, O-, A-, B-, AB-. Los porcentajes correspondientes a cada una serán 35, 36, 7,2,8,6,2 y 4%.

1 PREGUNTA 1.

Creación de un dataframe denominado muestra, compuesto de 1000 casos.

Establecemos la semilla para que el resto del ejercicio pueda ser reproducido como en el aula

set.seed(123)

VARIABLE CUANTITATIVA CONTINUA.

peso <- runif(100,                              # Número de alumnos
               59,                              # Peso máximo
               96)                              # Peso máximo 

altura <- runif(100,                             # Número de alumnos
               1.61,                             # Altura mínima
               2.01)                             # Altura máxima 

VARIABLE NUMÉRICA DISCRETA.

edad <- sample(18:25,                # Intervalos de edad de los alumnos
               100,                  # Número de alumnos
               replace=TRUE)          

VARIABLE CUALITATIVA NOMINAL.

procedencia <- sample(c("Bahía", "Besaya","Campoo","Zona Oriental","Zona Occidental", "Foráneos"), 
                      size = 100, 
                      replace = TRUE, 
                      prob=c(0.45,0.2,0.05,0.15,0.10, 0.05))

sexo <- sample(1:2, 
              size = 100, 
              replace = TRUE, 
              prob=c(0.48,0.52))

VARIABLE CUANTITATIVA DISCRETA.

variable_6 <- sample(1:5,                
                    100,                
                    replace=TRUE, 
                    prob = c(0.25, 0.20, 0.25, 0.05, 0.25))       

variable_7 <- sample(1:3,                      
                    100,                      
                    replace=TRUE, 
                    prob = c(0.15, 0.35, 0.50))             

VARIABLE CUALITATIVA NOMINAL.

grupo_sanguineo <- sample(c("O+","A+","B+","AB+","O-","A-","B-","AB-"), 
                          size = 100, 
                          replace = TRUE, 
                         prob=c(0.35,0.36,0.07,0.02,0.08,0.06,0.02,0.04))
muestra <- data.frame(peso, altura, edad, procedencia, sexo, variable_6, variable_7, grupo_sanguineo)   # Creación deL dataframe
rm(peso, altura, edad,procedencia, sexo, variable_6, variable_7, grupo_sanguineo)         # Eliminación de vectores (ya no son necesarios una vez creado el dataframe)

2 PREGUNTA 2.

Transforma en factores aquellas variables que consideres necesario.

str(muestra)                                                                    # Comprobación de la estructura del dataframe.
muestra$procedencia <- as.factor(muestra$procedencia)                           # Variables cualitativas con etiquetas (caracteres)
muestra$grupo_sanguineo <- as.factor(muestra$grupo_sanguineo)

muestra$sexo <- factor(muestra$sexo, 
                       levels = c(1,2),
                       labels = c("hombre","mujer"))

3 PREGUNTA 3.

¿Cúal son los valores correspondientes a?:

Filas 12 a 14

muestra[12:14, ]                  

Columnas 21 a 30

muestra[, 1:2]                    

Filas 17 a 21 de la variable grupo_sanguineo

muestra$grupo_sanguineo[2:17]     

4 PREGUNTA 4.

Crea una nueva variable denominada IMC que resulta de dividir el peso (en kg) entre la estatura en metros elevada al cuadrado.

muestra$IMC <- muestra$peso / muestra$altura**2 

5 PREGUNTA 5.

Recodifica la variable IMC creando una nueva variable, denominada “riesgo_sobrepeso”, que tendrá las siguientes categorías:

muestra <- within(muestra,{
  riesgo_sobrepeso <- NA # 
  riesgo_sobrepeso[IMC < 18.5] <- "Bajo"    
  riesgo_sobrepeso[IMC >= 18.5 & IMC < 24.9] <- "Normal"
  riesgo_sobrepeso[IMC >= 24.9 & IMC < 29.9] <- "Sobrepeso"
  riesgo_sobrepeso[IMC >= 30] <- "Obesidad" })

6 PREGUNTA 6.

Convierte en factores las variables 6 y 7.

muestra$rama_conocimiento <- factor(muestra$variable_6,       
                        levels=c(1,2,3,4,5),    
                        labels=c("Arte y Humanidades","Ciencias","Ciencias Sociales y Jurídicas","Ingeniería y Arquitectura", "Ciencias de la Salud"))
muestra$uso_movil <- ordered(muestra$variable_7,                                # También pueden transformarse en factores ordinales
                        levels=c(1,2,3),
                        labels=c("Escaso","Moderado","Intenso"))

7 PREGUNTA 7.

Comprueba si hay datos nulos en el dataframe, y en su caso, elimínalos.

sapply(muestra, 
       function(x) sum(is.na(x)))     # Cuenta el número de nulos por columna

8 PREGUNTA 8.

Crea un nuevo dataframe, denominado sobrepeso_masculino, que contenga todos los hombres con sobrepeso y obesidad.

sobrepeso_masculino <- subset(muestra,
                              genero=="Masculino" & IMC >= 24.9)

9 PREGUNTA 9.

De este último dataframe, elimina las variables peso, altura, y uso de móvil.

sobrepeso_masculino <- subset(sobrepeso_masculino, 
                              select=-c(peso, altura, uso_movil))         

10 PREGUNTA 10.

Graba este dataframe con formato .rds en el directorio de trabajo donde alojarás los materiales del curso.

getwd()                                                                         # Comprobación del director de trabajo actual.
setwd("....")                # Cambio del directorio de trabajo
saveRDS(sobrepeso_masculinoy, file = "sobrepeso_masculino.rds")

11 PREGUNTA 11.

Graba todo el contenido del Global Environment con formato .RData.

save.image(file = "*.rds")