Vektor dan Urutan Bernama
Tetapkan dan akses nama pada vektor agar kode mudah dibaca.
Vektor dan Urutan Bernama adalah pelajaran R Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar R Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus R Academy mencakup 4 pelajaran total.
Pengantar Vektor Bernama
Vektor bernama adalah vektor yang setiap elemennya memiliki nama terkait (label karakter). Nama membuat kode lebih mudah dibaca dan memungkinkan Anda mengakses elemen berdasarkan nama, bukan indeks posisi.
# A plain vector vs a named vector
plain <- c(78, 92, 85, 67)
named <- c(Alice = 78, Bob = 92, Carol = 85, Dave = 67)
cat('Plain vector:', plain, '
')
cat('Named vector:
')
print(named)Membuat Vektor Bernama dengan c()
Cara paling sederhana untuk membuat vektor bernama adalah menggunakan pasangan name = value di dalam c(). Nama dapat berupa string valid apa pun; jika mengandung spasi atau karakter khusus, apit nama tersebut dengan backtick atau tanda kutip.
# GDP in trillions USD
gdp <- c(USA = 27.4, China = 18.0, Germany = 4.1,
Japan = 4.2, UK = 3.1)
cat('GDP values:
')
print(gdp)
cat('Names:', names(gdp), '
')
cat('Values:', unname(gdp), '
')Fungsi names()
names(x) mengambil nama-nama vektor sebagai vektor karakter. Anda juga dapat menetapkan nama setelah pembuatan menggunakan names(x) <- c(...), yang mengubah vektor secara langsung.
# Assign names after creation
temps <- c(22.1, 18.5, 25.3, 20.0)
cat('Before naming:', temps, '
')
names(temps) <- c('Mon', 'Tue', 'Wed', 'Thu')
cat('After naming:
')
print(temps)
# Retrieve names
cat('Days:', names(temps), '
')Mengakses Elemen Berdasarkan Nama
Gunakan x["name"] atau x[["name"]] untuk mengakses elemen vektor bernama. Kurung siku tunggal [] mengembalikan subset yang tetap memiliki nama; [[]] hanya mengembalikan nilainya tanpa nama.
scores <- c(Math = 88, Science = 92, English = 75, History = 81)
# Single bracket: keeps name
cat('Math score (with name):
')
print(scores['Math'])
# Double bracket: just the value
cat('Science score (value only):', scores[['Science']], '
')
# Multiple names
cat('STEM subjects:
')
print(scores[c('Math', 'Science')])setNames() untuk Gaya Fungsional
setNames(x, nm) mengembalikan salinan x dengan nama yang ditetapkan ke nm, tanpa mengubah objek asli. Ini berguna dalam alur operasi saat Anda ingin memberi nama pada vektor sebagai bagian dari rangkaian operasi.
# setNames returns a named copy (does not modify original)
raw_values <- c(0.85, 0.72, 0.91, 0.68)
metrics <- setNames(raw_values, c('Precision', 'Recall', 'F1', 'Accuracy'))
cat('Original (unchanged):', raw_values, '
')
cat('Named metrics:
')
print(metrics)
# Best metric
best_name <- names(which.max(metrics))
cat('Best metric:', best_name, '=', metrics[best_name], '
')Mengubah Nama
Anda dapat mengubah nama secara individual dengan mengindeks names(x). Ini berguna jika Anda perlu mengganti nama sebagian elemen tanpa membuat ulang seluruh vektor.
prices <- c(apple = 1.20, bannana = 0.80, cherry = 3.50) # typo!
# Fix a single name
names(prices)[2] <- 'banana'
cat('Fixed names:
')
print(prices)
# Rename all
names(prices) <- c('Apple', 'Banana', 'Cherry') # capitalise
cat('Capitalised:
')
print(prices)Urutan Bernama dengan seq() dan names()
Anda dapat membuat urutan bernama dengan menggabungkan seq() dan setNames(). Ini sangat berguna untuk indeks bulanan atau mingguan, ketika nama memberikan konteks pada nilai numerik.
# Monthly average temperature with names
temps_monthly <- setNames(
c(3.1, 4.2, 8.5, 13.0, 17.2, 21.0, 23.5, 23.0, 19.0, 13.5, 7.8, 4.0),
month.abb
)
cat('Monthly temps:
')
print(temps_monthly)
cat('Summer avg:', mean(temps_monthly[c('Jun', 'Jul', 'Aug')]), '
')Memfilter Vektor Bernama
Vektor bernama mendukung pengindeksan logika dan karakter. Anda dapat memilih elemen berdasarkan nama sekaligus memfilternya berdasarkan nilai, sehingga vektor bernama sangat ekspresif untuk tabel pencarian kecil.
population <- c(Tokyo = 37.4, Delhi = 32.9, Shanghai = 28.5,
Dhaka = 22.5, Cairo = 21.3, Mumbai = 20.7)
# Select cities with population > 25 million
big_cities <- population[population > 25]
cat('Cities over 25M:
')
print(big_cities)
# Sort descending by population
cat('Ranked:
')
print(sort(population, decreasing = TRUE))Menghapus Nama dengan unname()
unname(x) menghapus semua nama dari vektor dan hanya mengembalikan nilainya. Ini berguna saat meneruskan data ke fungsi yang tidak mengharapkan vektor bernama, atau saat nama membuat keluaran tampak berantakan.
named_vec <- c(x1 = 10, x2 = 20, x3 = 30, x4 = 40)
cat('Named:
')
print(named_vec)
unnamed_vec <- unname(named_vec)
cat('Unnamed:
')
print(unnamed_vec)
# Check
cat('Has names after unname:', !is.null(names(unnamed_vec)), '
')Vektor Bernama sebagai Tabel Pencarian
Salah satu penggunaan vektor bernama yang paling kuat adalah sebagai tabel pencarian: memetakan kunci ke nilai. Daripada menggunakan rangkaian pernyataan if-else, gunakan vektor bernama dan lakukan pengindeksan terhadapnya.
# Map month abbreviation to number of days
days_in_month <- c(Jan=31, Feb=28, Mar=31, Apr=30, May=31,
Jun=30, Jul=31, Aug=31, Sep=30, Oct=31,
Nov=30, Dec=31)
# Look up specific months
query <- c('Mar', 'Jul', 'Nov')
cat('Days in', query[1], ':', days_in_month[query[1]], '
')
cat('Days in', query[2], ':', days_in_month[query[2]], '
')
cat('Days in', query[3], ':', days_in_month[query[3]], '
')Vektor Bernama: Fakta Penting
Ringkasan fitur vektor bernama dalam R:
- Buat dengan
c(name = value, ...)atau tetapkan melaluinames(x) <- c(...) - Akses berdasarkan nama dengan
x['name'](nama tetap ada) ataux[['name']](hanya nilai) setNames(x, nm)mengembalikan salinan bernama tanpa mengubah objek asliunname(x)menghapus semua nama- Vektor bernama dapat berfungsi sebagai tabel pencarian yang elegan (menggantikan rangkaian if-else)
# Complete workflow
rates <- c(USD = 1.0, EUR = 0.92, GBP = 0.79, JPY = 149.5)
# Convert 100 USD to each currency
amount_usd <- 100
converted <- amount_usd * rates
cat('100 USD in other currencies:
')
print(round(converted, 2))Pemeriksaan Singkat
Apa perbedaan antara x['key'] dan x[['key']] ketika x adalah vektor bernama?
Rekap: Vektor Bernama
Kerja bagus! Hal-hal penting dari pelajaran ini:
- Vektor bernama memasangkan setiap elemen dengan label karakter
- Buat dengan sintaks
c(name = val)atau tetapkan dengannames(x) <- ... x['name']mengembalikan subset bernama;x[['name']]hanya mengembalikan nilainyasetNames()adalah cara fungsional (tanpa perubahan) untuk menambahkan nama- Gunakan vektor bernama sebagai tabel pencarian untuk menggantikan rangkaian if-else yang panjang
unname()menghapus nama saat nilai mentah diperlukan
# Named vector as grade lookup
grade_map <- c('90'='A', '80'='B', '70'='C', '60'='D')
student_score <- 80
# Find grade bracket
brackets <- c(90, 80, 70, 60)
threshold <- max(brackets[brackets <= student_score])
cat('Score:', student_score, '-> Grade:', grade_map[as.character(threshold)], '
')Pertanyaan yang Sering Diajukan
Apakah pelajaran “Vektor dan Urutan Bernama” gratis?
Ya — teks lengkap “Vektor dan Urutan Bernama” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus R Academy, upgrade ke CoddyKit PRO. Kursus R Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Vektor dan Urutan Bernama”?
Tetapkan dan akses nama pada vektor agar kode mudah dibaca. Kamu berlatih R Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai R Academy?
Tidak diperlukan pengalaman sebelumnya. R Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Vektor dan Urutan Bernama” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran R Academy ini?
Ya. Setiap pelajaran R Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Operator Titik Dua untuk Rentang Bilangan Bulat
- seq() untuk Urutan Kustom
- rep() untuk Nilai Berulang
- Vektor dan Urutan Bernama