Vektor Bernama
Termasuk bagian Dasar-Dasar dalam perjalanan R di Coddy. Pelajaran 62 dari 78.
Sejauh ini, kamu telah mengakses elemen vector menggunakan posisi numerik. Namun, bagaimana jika kamu bisa mengaksesnya dengan nama yang bermakna? Vector bernama memungkinkan kamu menetapkan label pada setiap elemen, sehingga kodemu lebih mudah dibaca dan menjelaskan dirinya sendiri.
Kamu bisa membuat vector bernama dengan memberikan nama saat membuatnya:
ages <- c(alice = 25, bob = 30, charlie = 28)
print(ages)Output:
alice bob charlie
25 30 28Untuk mengakses elemen berdasarkan nama, gunakan nama sebagai string di dalam tanda kurung siku:
print(ages["bob"])Output:
bob
30Kamu juga bisa menambahkan nama ke vector yang sudah ada menggunakan fungsi names():
scores <- c(85, 92, 78)
names(scores) <- c("math", "science", "english")
print(scores["math"])Output:
math
85Vektor bernama sangat berguna saat bekerja dengan data yang memiliki label alami, seperti menyimpan nilai siswa berdasarkan mata pelajaran atau harga berdasarkan nama produk.
Tantangan
MudahKamu akan menerima dua baris input:
- Daftar nama produk yang dipisahkan koma (misalnya,
laptop,phone,tablet,headphones) - Daftar harga yang sesuai dan dipisahkan koma (misalnya,
999,699,449,199)
Lakukan operasi berikut:
- Buat vektor numerik dari harga
- Berikan nama produk ke vektor menggunakan fungsi
names() - Cetak seluruh vektor bernama
- Cetak harga produk kedua dengan mengaksesnya menggunakan namanya
- Cetak harga produk terakhir dengan mengaksesnya menggunakan namanya
Misalnya, jika inputnya adalah:
apple,banana,orange,grape
2,1,3,4Outputnya harus:
apple banana orange grape
2 1 3 4
banana
1
grape
4Catatan: Akses elemen kedua dan terakhir dengan nama sebagai subskrip (string, misalnya prices["banana"]), bukan dengan posisi numerik. Nama-nama tersebut berasal dari baris input pertama, jadi cari nama yang tepat di sana terlebih dahulu.
Coba sendiri
# Baca input
con <- file("stdin", "r")
products_input <- suppressWarnings(readLines(con, n = 1))
prices_input <- suppressWarnings(readLines(con, n = 1))
close(con)
# Uraikan input yang dipisahkan koma
product_names <- strsplit(products_input, ",")[[1]]
price_values <- strsplit(prices_input, ",")[[1]]
# TODO: Tulis kodemu di bawah ini
# 1. Buat vektor numerik dari harga-harga tersebut
# 2. Beri nama produk pada vektor menggunakan names()
# 3. Cetak seluruh vektor bernama
# 4. Cetak harga produk kedua dengan mengaksesnya menggunakan namanya
# 5. Cetak harga produk terakhir dengan mengaksesnya menggunakan namanyaPelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
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