범주형 기본값
숫자 벡터를 구간으로 나눌 때, 값이 경계에 정확히 걸치는 경우를 고려해야 합니다. 이 값을 더 낮은 구간의 범주에 넣을지, 더 높은 구간의 범주에 넣을지 결정해야 하죠. 즉, 위쪽 경계값은 포함하고 아래쪽 경계값은 포함하지 않는 구간을 선택할 수 있습니다(수학적 용어로는 "왼쪽 열린 구간, 오른쪽 닫힌 구간", (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]")