Corectarea argumentelor funcției
Funcția pentru media armonică este aproape finalizată. Mai trebuie însă să adaugi câteva verificări pentru argumentul na.rm. De data aceasta, în loc să generezi erori când datele de intrare au un format incorect, vei încerca să le corectezi.
na.rm trebuie să fie un vector logic cu un singur element (adică TRUE sau FALSE).
Pachetul assertive este deja încărcat pentru tine.
Acest exercițiu face parte din cursul
Introducere în scrierea funcțiilor în R
Instrucțiuni pentru exercițiu
- Actualizează
calc_harmonic_mean()pentru a corecta argumentulna.rm, folosinduse_first()pentru a selecta primul element al luina.rmșicoerce_to()pentru a-l converti la tip logic.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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)