시작하기무료로 시작하기

범주형 기본값

숫자 벡터를 구간으로 나눌 때, 값이 경계에 정확히 걸치는 경우를 고려해야 합니다. 이 값을 더 낮은 구간의 범주에 넣을지, 더 높은 구간의 범주에 넣을지 결정해야 하죠. 즉, 위쪽 경계값은 포함하고 아래쪽 경계값은 포함하지 않는 구간을 선택할 수 있습니다(수학적 용어로는 "왼쪽 열린 구간, 오른쪽 닫힌 구간", (lo, hi]). 반대로(“왼쪽 닫힌 구간, 오른쪽 열린 구간”, [lo, hi))를 선택할 수도 있습니다. cut_by_quantile()은 이 두 선택지를 허용해야 합니다.

범주형 기본값의 패턴은 다음과 같습니다:

function(cat_arg = c("choice1", "choice2")) {
  cat_arg <- match.arg(cat_arg)
}

무료 힌트: 콘솔에서 head(rank)를 입력해 rank() 정의의 시작 부분을 확인하고, ties.method 인자를 살펴보세요.

이 연습은 강의의 일부입니다

R 함수 작성 입문

강의 보기

연습 안내

  • cut_by_quantile()의 시그니처를 업데이트하여 interval_type 인자가 "(lo, hi]" 또는 "[lo, hi)"가 될 수 있도록 하세요. 각 쉼표 뒤에 공백이 있다는 점에 유의하세요.
  • cut_by_quantile() 본문에서 interval_type 인자를 매칭하도록 업데이트하세요.
  • cut_by_quantile() 호출에서 interval_type 인자를 제거하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Set the categories for interval_type to "(lo, hi]" and "[lo, hi)"
cut_by_quantile <- function(x, n = 5, na.rm = FALSE, labels = NULL, 
                            interval_type) {
  # Match the interval_type argument
  ___ <- ___
  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 interval_type argument from the call
cut_by_quantile(n_visits, interval_type = "(lo, hi]")
코드 편집 및 실행