Ejercicio 1: Crear una Función de Estadísticas Descriptivas

calcular_estadisticas <- function(x) {
  # Validar que la entrada sea numérica
  if (!is.numeric(x)) {
    stop("Error: El argumento debe ser un vector numérico.")
  }
  
  # Eliminar valores NA
  x <- na.omit(x)
  
  # Calcular y devolver resultados en lista
  resultado <- list(
    media = mean(x),
    mediana = median(x),
    desviacion_estandar = sd(x)
  )
  
  return(resultado)
}

Ejemplos:

calcular_estadisticas(c(5, 8, 10, NA, 3))
## $media
## [1] 6.5
## 
## $mediana
## [1] 6.5
## 
## $desviacion_estandar
## [1] 3.109126
calcular_estadisticas(c(100, 200, 300, 400))
## $media
## [1] 250
## 
## $mediana
## [1] 250
## 
## $desviacion_estandar
## [1] 129.0994
calcular_estadisticas(c(1.5, 2.3, 3.7, 4.1, 5.2))
## $media
## [1] 3.36
## 
## $mediana
## [1] 3.7
## 
## $desviacion_estandar
## [1] 1.469013

Ejercicio 2: Función para Clasificar Valores

clasificar_imc <- function(peso, altura) {
  # Validar que peso y altura sean numéricos y positivos
  if (!is.numeric(peso) || !is.numeric(altura) || peso <= 0 || altura <= 0) {
    stop("Error: El peso y la altura deben ser números positivos.")
  }
  
  # Calcular IMC
  imc <- peso / (altura^2)
  
  # Clasificación según rangos
  if (imc < 18.5) {
    return("Bajo peso")
  } else if (imc < 25) {
    return("Peso normal")
  } else if (imc < 30) {
    return("Sobrepeso")
  } else {
    return("Obesidad")
  }
}

Ejemplos:

clasificar_imc(68, 1.70)   # Peso normal
## [1] "Peso normal"
clasificar_imc(85, 1.75)   # Sobrepeso
## [1] "Sobrepeso"
clasificar_imc(95, 1.65)   # Obesidad
## [1] "Obesidad"