Padrões categóricos
Ao dividir um vetor numérico em intervalos, você precisa se preocupar com o que acontece se um valor cair exatamente na fronteira. Você pode colocar esse valor na categoria do intervalo inferior ou do superior. Isto é, você pode escolher seus intervalos para incluir os valores no limite superior, mas não no inferior (em termos matemáticos, "aberto à esquerda, fechado à direita", ou (lo, hi]). Ou pode escolher o oposto ("fechado à esquerda, aberto à direita", ou [lo, hi)). cut_by_quantile() deve permitir essas duas opções.
O padrão para padrões categóricos é:
function(cat_arg = c("choice1", "choice2")) {
cat_arg <- match.arg(cat_arg)
}
Dica gratuita: No console, digite head(rank) para ver o início da definição de rank() e observe o argumento ties.method.
Este exercício faz parte do curso
Introdução à Escrita de Funções em R
Instruções do exercício
- Atualize a assinatura de
cut_by_quantile()para que o argumentointerval_typepossa ser"(lo, hi]"ou"[lo, hi)". Observe o espaço após cada vírgula. - Atualize o corpo de
cut_by_quantile()para fazer o matching do argumentointerval_type. - Remova o argumento
interval_typeda chamada acut_by_quantile().
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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]")