Oprava argumentů funkce
Funkce pro harmonický průměr je skoro hotová. Ještě ale potřebuješ ošetřit argument na.rm. Tentokrát místo vyhazování chyb při nesprávném vstupu zkusíš hodnotu rovnou opravit.
na.rm by měl být logický vektor s jedním prvkem (tedy TRUE, nebo FALSE).
Balíček assertive je už načtený.
Toto cvičení je součástí kurzu
Introduction to Writing Functions in R
Pokyny k cvičení
- Uprav
calc_harmonic_mean()tak, aby opravila argumentna.rm: použijuse_first()pro výběr prvního prvkuna.rmacoerce_to()pro jeho převod na logický typ.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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)