Menu
CoddyTech

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] 14

Nama 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] 4

Vektor 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] 15

Nama yang tidak ditemukan berperilaku berbeda dalam kedua bentuk: prices["milk"] menghasilkan NA, sedangkan prices[["milk"]] berhenti dengan error subscript out of bounds.

challenge icon

Tantangan

Mudah

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