Corrigindo argumentos de função
A função de média harmônica está quase pronta. Porém, ainda é preciso fazer algumas verificações no argumento na.rm. Desta vez, em vez de lançar erros quando a entrada estiver no formato incorreto, você vai tentar corrigir o valor.
na.rm deve ser um vetor lógico com um único elemento (ou seja, TRUE ou FALSE).
O pacote assertive já está carregado para você.
Este exercício faz parte do curso
Introdução à Escrita de Funções em R
Instruções do exercício
- Atualize
calc_harmonic_mean()para corrigir o argumentona.rmusandouse_first()para selecionar o primeiro elemento dena.rmecoerce_to()para convertê-lo para lógico.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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)