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"