ComeçarComece de graça

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

Ver curso

Instruções do exercício

  • Atualize calc_harmonic_mean() para corrigir o argumento na.rm usando use_first() para selecionar o primeiro elemento de na.rm e coerce_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)
Editar e executar o código