Menu
Coddy logo textTech

Adlandırılmış Vektör Aramaları

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

Adlandırılmış bir vektör, değerleri adlar altında depolar; bu da onu bir arama tablosu hâline getirir: ad anahtardır ve öğe onun değeridir. Yalnızca değeri almak için adı [[ ]] içine yazın.

prices <- c(tea = 4, cake = 7)
print(prices[["cake"]])
print(names(prices))

Çıktı:

[1] 7
[1] "tea"  "cake"

Tekli köşeli parantezler, öğeyi adıyla birlikte döndürür. [[ ]] yalnızca değeri döndürür:

prices <- c(tea = 4, cake = 7)
print(prices["cake"])
print(prices[["cake"]] * 2)

Çıktı:

cake 
   7 
[1] 14

Ad, bir değişkenden gelebilir; programun girdiden okuduğu bir anahtarı bu şekilde arar:

prices <- c(tea = 4, cake = 7)
item <- "tea"
print(prices[[item]])

Çıktı:

[1] 4

İsimlerden oluşan bir vektör, yinelenenler de dahil olmak üzere aynı anda birkaç anahtar arar; bu nedenle sum() bir siparişin toplamını tek adımda hesaplar:

prices <- c(tea = 4, cake = 7)
order <- c("tea", "cake", "tea")
print(sum(prices[order]))

Çıktı:

[1] 15

Eksik bir ad, iki biçimde farklı davranır: prices["milk"] NA döndürürken, prices[["milk"]] subscript out of bounds hatasıyla durur.

challenge icon

Görev

Kolay

line_total(item, qty) işlevini tamamlayın. İşlev aşağıdaki menüyü tanımlar. item fiyatı ile qty değerinin çarpımını iki ondalık basamakla biçimlendirilmiş olarak döndürün: tea ve 3, 7.50 sonucunu verir.

menu <- c(tea = 2.5, coffee = 3, cake = 4.25, soup = 6)

Girdideki her öğe menüde bulunur. Sağlanan kod, öğeyi ve miktarı okur ve döndürülen değeri yazdırır.

Kendin dene

line_total <- function(item, qty) {
  menu <- c(tea = 2.5, coffee = 3, cake = 4.25, soup = 6)
  # Kodunuzu buraya yazın
  ""
}

# Sağlanan girdi/çıktı kodu: olduğu gibi bırakın
input <- suppressWarnings(readLines(file("stdin")))
cat(line_total(input[1], as.numeric(input[2])), 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