Corregir argumentos de función
La función de media armónica está casi lista. Sin embargo, aún tienes que añadir algunas comprobaciones sobre el argumento na.rm. Esta vez, en lugar de lanzar errores cuando la entrada tiene un formato incorrecto, vas a intentar corregirla.
na.rm debe ser un vector lógico de un solo elemento (es decir, TRUE o FALSE).
El paquete assertive ya está cargado para ti.
Este ejercicio forma parte del curso
Introducción a la escritura de funciones en R
Instrucciones del ejercicio
- Actualiza
calc_harmonic_mean()para corregir el argumentona.rmusandouse_first()para seleccionar el primer elemento dena.rm, ycoerce_to()para convertirlo a lógico.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Update the function definition to fix the na.rm argument
calc_harmonic_mean <- function(x, na.rm = FALSE) {
assert_is_numeric(x)
if(any(is_non_positive(x), na.rm = TRUE)) {
stop("x contains non-positive values, so the harmonic mean makes no sense.")
}
# Use the first value of na.rm, and coerce to logical
___ <- ___(___(___), ___ = "___")
x %>%
get_reciprocal() %>%
mean(na.rm = na.rm) %>%
get_reciprocal()
}
# See what happens when you pass it malformed na.rm
calc_harmonic_mean(std_and_poor500$pe_ratio, na.rm = 1:5)