Menu
Coddy logo textTech

Benzersiz Değerler

Coddy'nin R Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 12 / 64.

R'nin ayrı bir küme türü yoktur: küme, tekrarlanan değerler içermeyen bir vektördür. unique() tekrarları kaldırır ve her değerin ilk oluşumunu özgün sırada tutar.

tags <- c("r", "stats", "r", "data", "stats")
print(unique(tags))
print(length(unique(tags)))

Çıktı:

[1] "r"     "stats" "data" 
[1] 3

duplicated(), vektörde daha önce zaten yer almış her değer için TRUE döndürür. İlk oluşum FALSE değeridir:

ids <- c(7, 3, 7, 9, 3)
print(duplicated(ids))
print(ids[duplicated(ids)])

Çıktı:

[1] FALSE FALSE  TRUE FALSE  TRUE
[1] 7 3

Her iki işlev de tam değerleri karşılaştırır; bu nedenle "R" ve "r" farklıdır. Büyük/küçük harf önemli olmamalıysa önce metni normalleştirin:

langs <- c("R", "python", "r", "Python")
print(length(unique(langs)))
print(unique(tolower(langs)))

Çıktı:

[1] 4
[1] "r"      "python"

unique() sayılar üzerinde de çalışır ve sort(unique(x)) farklı değerleri artan sırayla listeler. sum(duplicated(x)) kaç öğenin tekrarlandığını sayar:

rolls <- c(4, 2, 6, 2, 4, 4)
print(sort(unique(rolls)))
print(sum(duplicated(rolls)))

Çıktı:

[1] 2 4 6
[1] 3
challenge icon

Görev

Kolay

count_distinct(tags) işlevini tamamla. Büyük/küçük harfler göz ardı edildiğinde kaç farklı etiket olduğunu döndür: R ve r bir kez sayılır.

Verilen kod, etiketleri virgülle ayrılmış bir satır olarak okur ve döndürülen sayıyı yazdırır.

Kendin dene

count_distinct <- function(tags) {
  # Kodunuzu buraya yazın
  0
}

# Sağlanan girdi/çıktı kodu: olduğu gibi bırakın
input <- suppressWarnings(readLines(file("stdin")))
cat(count_distinct(strsplit(input[1], ",")[[1]]), sep = "\n")
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online R derleyicisi