Memperbaiki argumen fungsi
Fungsi mean harmonik hampir selesai. Namun, Anda masih perlu menambahkan beberapa pemeriksaan pada argumen na.rm. Kali ini, alih-alih melempar galat ketika masukan berada dalam bentuk yang tidak benar, Anda akan mencoba memperbaikinya.
na.rm harus berupa vektor logika dengan satu elemen (yaitu, TRUE atau FALSE).
Paket assertive telah dimuat untuk Anda.
Latihan ini adalah bagian dari kursus
Pengantar Penulisan Fungsi di R
Petunjuk latihan
- Perbarui
calc_harmonic_mean()untuk memperbaiki argumenna.rmdengan menggunakanuse_first()untuk memilih elemenna.rmpertama, dancoerce_to()untuk mengubahnya menjadi bertipe logika.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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)