開始使用免費開始

邏輯型預設值

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]"
)
編輯並執行程式碼