Ne Almalı
Coddy'nin R Journey'sinin Temeller bölümünün bir parçası — ders 78 / 78.
Görev
Kolayİki bağımsız değişken alan what_to_buy adında bir fonksiyon oluşturun: budget (sayısal bir değer) ve prices (öğe fiyatlarından oluşan isimlendirilmiş bir vektör). Fonksiyon, fiyatı bütçeye eşit veya bütçeden küçük olan tüm öğelerin adlarını içeren bir karakter vektörü döndürmelidir.
Eğer hiçbir öğe uygun fiyatlı değilse, character(0) kullanarak boş bir karakter vektörü döndürün.
Aşağıdaki girdileri alacaksınız:
- Bütçe miktarı (bir sayı)
- Virgülle ayrılmış öğe adları listesi (örneğin,
apple,banana,steak,bread) - Virgülle ayrılmış karşılık gelen fiyatlar listesi (örneğin,
2,1,15,3)
İsimlendirilmiş bir fiyat vektörü oluşturmak için girdileri ayrıştırın, fonksiyonunuzu çağırın ve sonucu yazdırın. Döndürülen karakter vektörünü görüntülemek için print() kullanın.
Örneğin, girdi şu şekildeyse:
5
apple,banana,steak,bread
2,1,15,3Çıktı şu olmalıdır:
[1] "apple" "banana" "bread"Eğer girdi şu şekildeyse:
10
laptop,phone,tablet
999,599,399Çıktı şu olmalıdır:
character(0)İpuçları:
- Virgülle ayrılmış dizeleri vektörlere bölmek için
strsplit(input, ",")[[1]]kullanın - Fiyat dizelerini sayılara dönüştürmek için
as.numeric()kullanın - İsimlendirilmiş bir vektör oluşturmak için
names(prices) <- item_nameskullanın - Uygun fiyatlı öğe adlarını çıkarmak için
names()ile mantıksal indeksleme kullanın
Kendin dene
# Girdiyi oku
con <- file("stdin", "r")
budget <- as.numeric(suppressWarnings(readLines(con, n = 1)))
item_names_input <- suppressWarnings(readLines(con, n = 1))
prices_input <- suppressWarnings(readLines(con, n = 1))
close(con)
# Girdileri ayrıştır
item_names <- strsplit(item_names_input, ",")[[1]]
price_values <- as.numeric(strsplit(prices_input, ",")[[1]])
# Fiyatların adlandırılmış bir vektörünü oluştur
prices <- price_values
names(prices) <- item_names
# YAPILACAK: what_to_buy fonksiyonunuzu aşağıya yazın
# Fonksiyon, bütçe ve fiyatları argüman olarak almalıdır
# ve satın alınabilir öğe adlarından oluşan bir karakter vektörü döndürmelidir
# Fonksiyonu çağır ve sonucu yazdır
result <- what_to_buy(budget, prices)
print(result)Temeller bölümündeki tüm dersler
4Operatörler Bölüm 2
Mantıksal Operatörler (AND, OR)Mantıksal Operatörler Bölüm 2 (NOT)Özet - Basit MantıkVektörize Mantık Bölüm 1Vektörize Mantık Bölüm 27Hesap Paylaşım Hesaplayıcısı
Hoş Geldiniz MesajıKullanıcıdan Girdi Alma10Farklı Bir FizzBuzz
Oyuna Genel BakışFizzBuzz Fonksiyonu2Değişkenler ve Veri Tipleri
Sayısal Veri TipiTam Sayı Veri TipiKarakter Veri TipiMantıksal Veri TipiVeri Tiplerini Kontrol Etmeİsimlendirme KurallarıEksik Değerler: NAÖzet - Değişken Oluşturma8Döngüler
For DöngüsüWhile DöngüsüBreakNext (Continue)Özet - FaktöriyelDizi Oluşturma (seq, :)İç İçe DöngülerÖzet - Dinamik Girdi3Operatörler 1. Bölüm
Aritmetik OperatörlerTam Sayı Bölmesi ve Mod AlmaAtama OperatörleriÖzet - Basit MatematikKarşılaştırma Operatörleri6Temel Giriş-Çıkış
Print ÇıktısıÇıktı için Cat KullanımıDeğişkenlerle Çıktı Almakreadline() ile Girdi OkumaTip Dönüşümü TemelleriÖzet - Yaş HesaplayıcıÖzet - Doğru mu Yanlış mı9Fonksiyonlar
Fonksiyon TanımlamaFonksiyon ArgümanlarıDönüş DeğerleriÖzet - Sigma FonksiyonuÖzet - Doğrulama FonksiyonuVarsayılan Parametre Değerleri