Lanzar errores con argumentos incorrectos
Si un usuario proporciona una entrada incorrecta a una función, lo mejor es lanzar un error para avisarle. Las dos reglas son:
- Lanza el mensaje de error en cuanto detectes el problema (normalmente al principio de la función).
- Haz que el mensaje de error sea fácil de entender.
Puedes usar las funciones assert_*() de assertive para comprobar las entradas y lanzar errores cuando fallen.
Este ejercicio forma parte del curso
Introducción a la escritura de funciones en R
Instrucciones del ejercicio
- Añade una línea al cuerpo de
calc_harmonic_mean()para asegurar quexes numérico. - Observa qué ocurre cuando pasas un argumento de tipo carácter a
calc_harmonic_mean().
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
calc_harmonic_mean <- function(x, na.rm = FALSE) {
# Assert that x is numeric
___
x %>%
get_reciprocal() %>%
mean(na.rm = na.rm) %>%
get_reciprocal()
}
# See what happens when you pass it strings
calc_harmonic_mean(std_and_poor500$sector)