論理型のデフォルト
cut_by_quantile() は以前より少し使いやすくなりましたが、まだ毎回 na.rm 引数を指定する必要があります。これは欠損値を除去するもので、mean() や sd() の na.rm 引数と同じ動きをします。
欠損値を除去するための引数がある関数では、ベストプラクティスとして、デフォルトでは除去しないようにします(欠損値があることに気づかない可能性があるため)。つまり、na.rm のデフォルトは FALSE にすべきです。
この演習はコースの一部です
R関数入門
演習の手順
cut_by_quantile()の定義を更新し、na.rm引数のデフォルトをFALSEにします。cut_by_quantile()の呼び出しからna.rm引数を削除します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Set the default for na.rm to FALSE
cut_by_quantile <- function(x, n = 5, na.rm, labels, interval_type) {
probs <- seq(0, 1, length.out = n + 1)
qtiles <- quantile(x, probs, na.rm = na.rm, names = FALSE)
right <- switch(interval_type, "(lo, hi]" = TRUE, "[lo, hi)" = FALSE)
cut(x, qtiles, labels = labels, right = right, include.lowest = TRUE)
}
# Remove the na.rm argument from the call
cut_by_quantile(
n_visits,
na.rm = FALSE,
labels = c("very low", "low", "medium", "high", "very high"),
interval_type = "(lo, hi]"
)