Pencarian pada Vector Bernama
Termasuk bagian Logika dan Alur dalam perjalanan R di Coddy. Pelajaran 7 dari 64.
Vektor bernama menyimpan nilai dengan nama, sehingga menjadi tabel pencarian: nama adalah kunci dan elemennya adalah nilainya. Letakkan nama di dalam [[ ]] untuk mendapatkan nilainya saja.
prices <- c(tea = 4, cake = 7)
print(prices[["cake"]])
print(names(prices))Output:
[1] 7
[1] "tea" "cake"Tanda kurung siku tunggal mengembalikan elemen beserta namanya. [[ ]] hanya mengembalikan nilainya:
prices <- c(tea = 4, cake = 7)
print(prices["cake"])
print(prices[["cake"]] * 2)Output:
cake
7
[1] 14Nama tersebut bisa berasal dari variabel, yaitu cara program mencari kunci yang dibaca dari input:
prices <- c(tea = 4, cake = 7)
item <- "tea"
print(prices[[item]])Output:
[1] 4Vektor nama mencari beberapa kunci sekaligus, termasuk yang berulang, sehingga sum() menjumlahkan pesanan dalam satu langkah:
prices <- c(tea = 4, cake = 7)
order <- c("tea", "cake", "tea")
print(sum(prices[order]))Output:
[1] 15Nama yang tidak ditemukan berperilaku berbeda dalam kedua bentuk: prices["milk"] menghasilkan NA, sedangkan prices[["milk"]] berhenti dengan error subscript out of bounds.
Tantangan
MudahLengkapi line_total(item, qty). Fungsi ini mendefinisikan menu di bawah. Kembalikan harga item dikalikan qty, dengan format dua angka desimal: tea dan 3 menghasilkan 7.50.
menu <- c(tea = 2.5, coffee = 3, cake = 4.25, soup = 6)Setiap item dalam input tersedia di menu. Kode yang disediakan membaca item dan jumlahnya, lalu mencetak nilai yang dikembalikan.
Coba sendiri
line_total <- function(item, qty) {
menu <- c(tea = 2.5, coffee = 3, cake = 4.25, soup = 6)
# Tulis kodemu di sini
""
}
# Kode input/output yang disediakan: biarkan seperti apa adanya
input <- suppressWarnings(readLines(file("stdin")))
cat(line_total(input[1], as.numeric(input[2])), 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