Apa yang Harus Dibeli
Termasuk bagian Dasar-Dasar dalam perjalanan R di Coddy. Pelajaran 78 dari 78.
Tantangan
MudahBuat fungsi bernama what_to_buy yang menerima dua argumen: budget (nilai numerik) dan prices (vektor bernama yang berisi harga barang). Fungsi ini harus mengembalikan vektor karakter yang berisi nama semua barang dengan harga kurang dari atau sama dengan budget.
Jika tidak ada barang yang terjangkau, kembalikan vektor karakter kosong menggunakan character(0).
Kamu akan menerima input berikut:
- Jumlah budget (angka)
- Daftar nama barang yang dipisahkan dengan koma (misalnya,
apple,banana,steak,bread) - Daftar harga yang sesuai dan dipisahkan dengan koma (misalnya,
2,1,15,3)
Parsing input untuk membuat vektor harga bernama, panggil fungsimu, lalu cetak hasilnya. Gunakan print() untuk menampilkan vektor karakter yang dikembalikan.
Contohnya, jika inputnya adalah:
5
apple,banana,steak,bread
2,1,15,3Outputnya adalah:
[1] "apple" "banana" "bread"Jika inputnya adalah:
10
laptop,phone,tablet
999,599,399Outputnya adalah:
character(0)Petunjuk:
- Gunakan
strsplit(input, ",")[[1]]untuk memisahkan string yang dipisahkan dengan koma menjadi vektor - Gunakan
as.numeric()untuk mengonversi string harga menjadi angka - Gunakan
names(prices) <- item_namesuntuk membuat vektor bernama - Gunakan pengindeksan logis dengan
names()untuk mengambil nama barang yang terjangkau
Coba sendiri
# Baca input
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)
# Uraikan input
item_names <- strsplit(item_names_input, ",")[[1]]
price_values <- as.numeric(strsplit(prices_input, ",")[[1]])
# Buat vektor harga dengan nama
prices <- price_values
names(prices) <- item_names
# TODO: Tulis fungsi what_to_buy milikmu di bawah ini
# Fungsi tersebut harus menerima budget dan prices sebagai argumen
# dan mengembalikan vektor karakter berisi nama barang yang harganya terjangkau
# Panggil fungsi tersebut dan cetak hasilnya
result <- what_to_buy(budget, prices)
print(result)Semua pelajaran di Dasar-Dasar
4Operator Bagian 2
Operator Logika (AND, OR)Operator Logika Bagian 2 (NOT)Rangkuman: Logika SederhanaLogika Tervektorisasi Bagian 1Logika Tervektorisasi Bagian 27Kalkulator Pembagi Tagihan
Pesan Selamat DatangMenerima Input Pengguna10FizzBuzz dengan Sentuhan Unik
Ikhtisar PermainanFungsi FizzBuzz2Variabel dan Tipe Data
Tipe Data NumerikTipe Data IntegerTipe Data KarakterTipe Data LogikaMemeriksa Tipe DataKonvensi PenamaanNilai yang Hilang: NARingkasan: Membuat Variabel8Perulangan
For LoopWhile LoopBreakBerikutnya (Continue)Ringkasan: FaktorialPembuatan Urutan (seq, :)Loop BersarangRingkasan: Input Dinamis3Operator Bagian 1
Operator AritmetikaPembagian Bilangan Bulat dan ModuloOperator PenugasanRangkuman: Matematika SederhanaOperator Perbandingan6Dasar input/output
Cetak outputcat untuk outputOutput dengan variabelMembaca input dengan readline()Dasar konversi tipe dataRingkasan: Kalkulator usiaRingkasan: Benar atau salah9Fungsi
Mendeklarasikan FungsiArgumen FungsiNilai KembalianUlasan: Fungsi SigmaUlasan: Fungsi ValidasiNilai Parameter Default12Melakukan Iterasi pada Urutan
Mengiterasi Elemen VektorMenggunakan seq_along()Mengiterasi Karakter (strsplitFungsi Manipulasi stringLatihan sendiri: Compiler R online