Menu
Coddy logo textTech

table() ile Sayma

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

table(x) her bir değerin kaç kez geçtiğini sayar. Sonuç, değerlere göre adlandırılır ve alfabetik olarak sıralanır; bu nedenle bir değerin sayısı t[["value"]] şeklindedir:

votes <- c("tea", "coffee", "tea", "juice", "tea")
t <- table(votes)
print(t[["tea"]])
print(names(t))
print(as.vector(t))

Çıktı:

[1] 3
[1] "coffee" "juice"  "tea"   
[1] 1 1 3

sort(t, decreasing = TRUE) sayımları en yüksekten en düşüğe sıralar. which.max(t) en büyük sayımın konumunu verir; sayımlar eşit olduğunda ilkini, yani alfabetik olarak ilk değeri seçer:

votes <- c("tea", "coffee", "tea", "juice", "coffee")
t <- table(votes)
print(names(t)[which.max(t)])
print(max(t))

Çıktı:

[1] "coffee"
[1] 2

Hiç oluşmayan bir değer tabloda hiç yer almaz; bu nedenle değeri okumadan önce %in% names(t) ile kontrol edin:

t <- table(c("A", "B", "A"))
for (grade in c("A", "B", "C")) {
  n <- if (grade %in% names(t)) t[[grade]] else 0
  cat(grade, n, "\n")
}

Çıktı:

A 2 
B 1 
C 0 

table() sayıları ve mantıksal değerleri de sayar. Tek bir değeri saymak için sum(x == value), bir tablo oluşturmaktan daha kısadır:

rolls <- c(6, 2, 6, 6, 1)
print(sum(rolls == 6))
print(table(rolls > 3)[["TRUE"]])

Çıktı:

[1] 3
[1] 3
challenge icon

Görev

Kolay

vote_winner(votes) işlevini tamamla. En çok oyu alan seçeneği, ardından oy sayısını tea (3 votes) örneğindeki gibi döndür. Seçenekler berabere kalırsa alfabetik olarak önce geleni döndür.

Sağlanan kod, oyları virgülle ayrılmış bir satır olarak okur ve döndürülen değeri yazdırır.

Kendin dene

vote_winner <- function(votes) {
  # Kodunuzu buraya yazın
  ""
}

# Sağlanan girdi/çıktı kodu: olduğu gibi bırakın
input <- suppressWarnings(readLines(file("stdin")))
cat(vote_winner(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