Menu
CoddyTech

Menghitung dengan table()

Termasuk bagian Logika dan Alur dalam perjalanan R di Coddy. Pelajaran 15 dari 64.

table(x) menghitung berapa kali setiap nilai muncul. Hasilnya diberi nama berdasarkan nilainya dan diurutkan secara alfabetis, jadi jumlah kemunculan suatu nilai adalah t[["value"]]:

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

Output:

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

sort(t, decreasing = TRUE) mengurutkan jumlah dari yang tertinggi ke yang terendah. which.max(t) memberikan posisi jumlah terbesar. Jika jumlahnya sama, fungsi ini memilih nilai pertama, yaitu nilai yang paling awal menurut urutan alfabet:

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

Output:

[1] "coffee"
[1] 2

Nilai yang tidak pernah muncul sama sekali tidak ada di dalam tabel, jadi periksa dengan %in% names(t) sebelum membacanya:

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")
}

Output:

A 2 
B 1 
C 0 

table() juga menghitung angka dan nilai logika. Untuk menghitung satu nilai, sum(x == value) lebih singkat daripada membuat tabel:

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

Output:

[1] 3
[1] 3
challenge icon

Tantangan

Mudah

Lengkapi vote_winner(votes). Kembalikan opsi dengan jumlah suara terbanyak, diikuti jumlah suaranya, seperti pada tea (3 votes). Jika beberapa opsi mendapat jumlah suara yang sama, kembalikan opsi yang lebih dahulu menurut urutan alfabet.

Kode yang disediakan membaca suara sebagai baris yang dipisahkan koma dan mencetak nilai yang dikembalikan.

Coba sendiri

vote_winner <- function(votes) {
  # Tulis kodemu di sini
  ""
}

# Kode input/output yang disediakan: biarkan apa adanya
input <- suppressWarnings(readLines(file("stdin")))
cat(vote_winner(strsplit(input[1], ",")[[1]]), sep = "\n")
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler R online