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 3sort(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] 2Nilai 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] 3Tantangan
MudahLengkapi 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")
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Mendalami string
Substring dengan substr()Memformat dengan sprintf()Memisahkan dan MenggabungkanMencari stringMengganti TeksRangkuman: Pembuat Nama Pengguna4Matriks
Membuat MatriksMengakses Elemen MatriksRingkasan Baris dan KolomAritmetika MatriksRangkuman: Denah Tempat Duduk2Pencarian Nilai-Kunci
Pencarian pada Vector BernamaMemeriksa KunciMenambahkan dan Menghapus KunciMenelusuri NamaUlasan: Meja Saham5Proyek, Buku Nilai
Menambahkan SiswaMencatat Nilai3Set dan Penghitungan
Nilai UnikOperasi setPengujian KeanggotaanMenghitung dengan table()Ulasan: Tamu Acara6Fungsi sebagai Nilai
Fungsi AnonimMengirim FungsiMengembalikan FungsiClosure dengan StateRangkuman: Aturan Diskon9Data Frame
Membuat Data FrameKolom dan BarisMemfilter BarisMenambahkan dan MengurutkanRangkuman: Laporan Penjualan12Proyek: Pelacak Pengeluaran
Mencatat PengeluaranTotal PengeluaranLatihan sendiri: Compiler R online