不正な引数でエラーを投げる
ユーザーが関数に不適切な入力を与えた場合は、エラーを投げて知らせるのが最善です。ルールは次の2つです。
- 問題に気づいた時点(通常は関数の冒頭)で、すぐにエラーを投げること。
- エラーメッセージは分かりやすくすること。
assertive の assert_*() 関数を使うと、入力のチェックを行い、失敗したときにエラーを投げられます。
この演習はコースの一部です
R関数入門
演習の手順
calc_harmonic_mean()の本体に、xが数値型であることをアサートする行を追加してください。- 文字ベクトルの引数を
calc_harmonic_mean()に渡すとどうなるかを確認しましょう。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
calc_harmonic_mean <- function(x, na.rm = FALSE) {
# Assert that x is numeric
___
x %>%
get_reciprocal() %>%
mean(na.rm = na.rm) %>%
get_reciprocal()
}
# See what happens when you pass it strings
calc_harmonic_mean(std_and_poor500$sector)