ComeçarComece de graça

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

Ver curso

Instruções do exercício

  • Atualize a assinatura de cut_by_quantile() para que o argumento interval_type possa 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 argumento interval_type.
  • Remova o argumento interval_type da chamada a cut_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]")
Editar e executar o código