ComenzarEmpieza gratis

Valores predeterminados categóricos

Al dividir un vector numérico en intervalos, debes pensar qué pasa si un valor cae exactamente en un borde. Puedes meter este valor en la categoría del intervalo inferior o en la del superior. Es decir, puedes elegir intervalos que incluyan los valores en el límite superior pero no en el inferior (en terminología matemática, «abierto por la izquierda, cerrado por la derecha», o (lo, hi]). O puedes elegir lo contrario («cerrado por la izquierda, abierto por la derecha», o [lo, hi)). cut_by_quantile() debería permitir estas dos opciones.

El patrón para valores predeterminados categóricos es:

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

Pista gratuita: En la consola, escribe head(rank) para ver el inicio de la definición de rank() y fíjate en el argumento ties.method.

Este ejercicio forma parte del curso

Introducción a la escritura de funciones en R

Ver curso

Instrucciones del ejercicio

  • Actualiza la firma de cut_by_quantile() para que el argumento interval_type pueda ser "(lo, hi]" o "[lo, hi)". Observa el espacio después de cada coma.
  • Actualiza el cuerpo de cut_by_quantile() para que haga coincidir el argumento interval_type.
  • Elimina el argumento interval_type de la llamada a cut_by_quantile().

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# 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 y ejecutar código