Kategorik varsayılanlar
Sayısal bir vektörü aralıklara bölerken, bir değerin tam sınırda kalması durumunda ne olacağını düşünmen gerekir. Bu değeri alt aralığın kategorisine ya da üst aralığın kategorisine koyabilirsin. Yani aralıklarını, üst sınırdaki değerleri dahil edip alt sınırdakileri dahil etmeyecek şekilde (matematiksel terimle, "solda açık, sağda kapalı" veya (lo, hi]) seçebilirsin. Ya da tam tersini ("solda kapalı, sağda açık" veya [lo, hi)) seçebilirsin. cut_by_quantile() bu iki seçeneğe izin vermelidir.
Kategorik varsayılanlar için kalıp şöyledir:
function(cat_arg = c("choice1", "choice2")) {
cat_arg <- match.arg(cat_arg)
}
Ücretsiz ipucu: Konsolda head(rank) yazıp rank() fonksiyonunun tanımının başına bak ve ties.method argümanına göz at.
Bu egzersiz, kursun bir parçasıdır
R'de Fonksiyon Yazmaya Giriş
Egzersiz talimatları
cut_by_quantile()imzasını güncelle veinterval_typeargümanının"(lo, hi]"veya"[lo, hi)"olabilmesini sağla. Her virgülden sonra bir boşluk olduğuna dikkat et.cut_by_quantile()gövdesini,interval_typeargümanını eşleyecek şekilde güncelle.cut_by_quantile()çağrısındaninterval_typeargümanını kaldır.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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]")