Pengisian dan Perataan String
Gunakan formatC() dan format() untuk output teks dengan lebar tetap dan rata.
Pengisian dan Perataan String 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.
Mengapa Pengisian String Penting
Output dengan lebar tetap sangat penting untuk tabel teks biasa, berkas pencatatan, dan laporan. R menyediakan formatC() dan format() untuk mengisi nilai hingga mencapai lebar tetap, sehingga kolom tersusun sejajar dengan benar dalam tampilan monospasi.
# Unformatted: columns misalign
cat('Alice 85\n')
cat('Bob 9200\n')
# Padded: columns align
cat(formatC('Alice', width = 10), formatC(85, width = 6), '\n')
cat(formatC('Bob', width = 10), formatC(9200, width = 6), '\n')formatC() — Pengisian Rata Kanan
formatC(x, width = n) mengisi nilai hingga setidaknya selebar n karakter, dengan rata kanan secara default. Spasi ditambahkan di sebelah kiri. Ini berlaku untuk angka maupun string.
formatC('hi', width = 10)
formatC(42, width = 10)
formatC(3.14, width = 10)formatC() — Rata Kiri dengan flag
Argumen flag = '-' mengubah perataan menjadi rata kiri dan mengisi sisi kanan dengan spasi. Ini ideal untuk label string dalam kolom tabel ketika Anda ingin nilai dimulai dari tepi kiri.
items <- c('Pen', 'Notebook', 'Stapler')
prices <- c(1.5, 4.99, 7.25)
for (i in seq_along(items)) {
cat(formatC(items[i], width = 12, flag = '-'),
formatC(prices[i], format = 'f', digits = 2, width = 8),
'\n')
}formatC() dengan Format Numerik
formatC() mendukung kode format: 'f' untuk desimal tetap, 'e' untuk notasi ilmiah, 'g' untuk memilih yang lebih singkat dari keduanya, dan 'd' untuk bilangan bulat. Argumen digits mengendalikan presisi.
x <- 12345.6789
formatC(x, format = 'f', digits = 2)
formatC(x, format = 'e', digits = 3)
formatC(x, format = 'g', digits = 5)
formatC(42L, format = 'd', width = 8)format() — Perataan Dasar R
format(x, width = n, justify = 'left'/'right'/'centre') adalah fungsi generik untuk perataan. Fungsi ini bekerja pada objek R apa pun dan mengembalikan vektor karakter yang setiap stringnya memiliki lebar sama. Perataan default untuk angka adalah kanan, sedangkan untuk string adalah kiri.
words <- c('cat', 'elephant', 'ox')
format(words, width = 10)
format(words, width = 10, justify = 'right')format() untuk Presisi Numerik
format() juga mengendalikan jumlah tempat desimal dengan nsmall (jumlah minimum digit setelah desimal) dan big.mark untuk pemisah ribuan. Keduanya ideal untuk menampilkan angka keuangan.
format(1234567.8, big.mark = ',', nsmall = 2)
format(0.1, nsmall = 4)
format(c(1.5, 100, 0.005), nsmall = 3)strrep() — Mengulang String
strrep(x, times) mengulang sebuah string sebanyak jumlah tertentu. Gunakan fungsi ini untuk membuat baris pemisah, string pengisi, atau hiasan visual tanpa harus menggabungkan karakter secara manual.
strrep('-', 40)
strrep('=-', 20)
strrep(c('ab', 'cd'), c(3, 2))
# Draw a simple table border
cat(strrep('=', 30), '\n')Membuat Tabel Teks dengan Lebar Tetap
Gabungkan formatC() dengan cat() dan strrep() untuk membuat tabel teks biasa yang rapi. Pola ini umum digunakan dalam alat CLI dan berkas pencatatan.
header <- paste0(formatC('Name', width=12,flag='-'),
formatC('Score', width=8,flag='-'),
formatC('Grade', width=8,flag='-'))
cat(header, '\n')
cat(strrep('-', 28), '\n')
row1 <- paste0(formatC('Alice', width=12,flag='-'),
formatC(92,width=8),formatC('A',width=8,flag='-'))
cat(row1, '\n')formatC() dibandingkan sprintf() untuk Pengisian
formatC() dan sprintf() sama-sama dapat menghasilkan output yang diberi pengisi. sprintf() lebih ringkas untuk kasus sederhana; formatC() lebih fleksibel untuk menerapkan pemformatan yang sama pada seluruh vektor.
x <- 42
# sprintf approach
sprintf('%10d', x)
sprintf('%-10s', 'hello')
# formatC approach
formatC(x, width = 10)
formatC('hello', width = 10, flag = '-')Pengendalian Notasi Ilmiah
formatC(x, format='e', digits=n) atau options(scipen=999) mengendalikan kapan R beralih ke notasi ilmiah. Opsi scipen adalah penalti; nilai yang lebih besar menekan penggunaan notasi ilmiah lebih lama sebelum peralihan terjadi.
# Default scipen
print(0.0001234)
print(1234567890)
# Force scientific
formatC(0.0001234, format = 'e', digits = 3)
# Suppress scientific globally
old <- options(scipen = 999)
print(0.0001234)
options(old)Praktik: Mengisi ID dan Label
Kebutuhan yang umum adalah ID dengan awalan nol atau label yang diisi dari kiri dalam laporan. formatC() menangani keduanya: gunakan flag = '0' untuk mengisi angka dengan nol dan flag = '-' untuk string yang rata kiri.
ids <- c(1, 12, 123)
names <- c('Alice', 'Bob', 'Carol')
scores <- c(88.5, 91.0, 76.25)
for (i in seq_along(ids)) {
cat(formatC(ids[i], width=5, format='d', flag='0'),
formatC(names[i], width=10, flag='-'),
formatC(scores[i], width=8, format='f', digits=2),
'\n')
}Pemeriksaan Singkat
Argumen manakah pada formatC() yang membuat output rata kiri dalam lebar yang ditentukan?
Pengisian dan Perataan: Inti Pembelajaran
Inti pembelajaran tentang pengisian dan perataan string:
formatC(x, width=n)mengisi hingga lebar n dengan rata kanan;flag='-'membuatnya rata kiriformatC(x, format='f', digits=2)untuk desimal tetap;'e'untuk notasi ilmiahformat(x, justify='left'/'right'/'centre')untuk perataan generikformat(x, big.mark=',', nsmall=2)untuk pemisah ribuan dan angka desimal di belakangstrrep(s, n)mengulang string n kali — sangat berguna untuk baris pemisah- Gabungkan dengan
cat()untuk output tabel teks biasa
cat(strrep('=', 30), '\n')
cat(formatC('Item', width=12, flag='-'),
formatC('Price', width=10), '\n')
cat(strrep('-', 30), '\n')
cat(formatC('Apple', width=12, flag='-'),
formatC(1.99, width=10, format='f', digits=2), '\n')Pertanyaan yang Sering Diajukan
Apakah pelajaran “Pengisian dan Perataan String” gratis?
Ya — teks lengkap “Pengisian dan Perataan String” 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 “Pengisian dan Perataan String”?
Gunakan formatC() dan format() untuk output teks dengan lebar tetap dan rata. 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 “Pengisian dan Perataan String” 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
- Membangun String dengan paste() dan paste0()
- Output Terformat dengan sprintf()
- Menampilkan Output dengan cat() dan print()
- Pengisian dan Perataan String