R Academy · Pelajaran

Output Terformat dengan sprintf()

Atur tempat desimal, pengisi, dan perataan dengan string format sprintf.

Pelajaran 2 dari 413 langkah

Output Terformat dengan sprintf() adalah pelajaran R Academy gratis di CoddyKit. Ini adalah pelajaran 2 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.

Dasar-Dasar sprintf()

sprintf() memformat string menggunakan string format dengan placeholder. Fungsinya sama persis seperti printf dalam C. Argumen pertama adalah templat format; argumen berikutnya mengisi placeholder secara berurutan.

sprintf('There are %d items', 5)
sprintf('Hello, %s!', 'Alice')
sprintf('Price: %.2f', 9.999)

Placeholder Bilangan Bulat dan String

%d memformat bilangan bulat, %s memformat string, dan %f memformat bilangan titik mengambang. Setiap placeholder diganti secara berurutan oleh argumen yang sesuai.

name <- 'Bob'
age  <- 34
score <- 88.5
sprintf('%s is %d years old with score %.1f', name, age, score)

Mengatur Jumlah Tempat Desimal

%.2f berarti: format sebagai bilangan titik mengambang dengan tepat 2 tempat desimal. Angka di antara . dan f mengatur presisi. Ini ideal untuk mata uang, persentase, dan nilai ilmiah.

pi_val <- 3.14159265
sprintf('%.0f', pi_val)
sprintf('%.2f', pi_val)
sprintf('%.5f', pi_val)
sprintf('$%.2f', 1234.5)

Lebar Kolom dan Padding

Angka sebelum huruf format menetapkan lebar minimum kolom. Secara bawaan, nilai diratakan ke kanan dan diberi spasi di sebelah kiri. Ini berguna untuk merapikan kolom dalam laporan teks biasa.

items <- c('Pen', 'Notebook', 'Stapler')
prices <- c(1.5, 4.99, 7.25)
for (i in seq_along(items)) {
  cat(sprintf('%-10s $%6.2f\n', items[i], prices[i]))
}

Perataan Kiri dengan Flag -

Awali angka lebar dengan - untuk meratakan teks ke kiri di dalam kolom. Ini adalah cara standar untuk menghasilkan kolom rata kiri dalam keluaran teks dengan lebar tetap.

# Right-aligned (default)
sprintf('%10s', 'hi')
# Left-aligned
sprintf('%-10s', 'hi')
# Practical: side-by-side
cat(sprintf('%-8s %5d\n', 'Alice', 42))
cat(sprintf('%-8s %5d\n', 'Bob', 7))

Notasi Ilmiah dengan %e dan %g

%e memaksa penggunaan notasi ilmiah (misalnya 1.23e+04). %g secara otomatis memilih format yang lebih pendek antara %f dan %e — berguna ketika nilai mencakup banyak orde magnitudo.

x <- 0.000123456
y <- 123456789
sprintf('%e', x)
sprintf('%e', y)
sprintf('%g', x)
sprintf('%g', y)

Padding Nol dengan Flag 0

Awali lebar dengan 0 untuk mengisi angka dengan nol di depan, bukan spasi. Ini umum digunakan untuk ID, tanggal, dan skema penomoran file dengan padding nol.

ids <- c(1, 12, 123, 1234)
sprintf('ID_%05d', ids)
# Date parts
sprintf('%04d-%02d-%02d', 2024, 5, 7)

Memformat Persentase

Untuk menampilkan rasio sebagai persentase, kalikan dengan 100 dan gunakan %.1f%%. Dua %% menyisipkan tanda persen harfiah dalam keluaran (satu % akan dianggap sebagai awal placeholder).

pass_rate <- 0.8743
sprintf('Pass rate: %.1f%%', pass_rate * 100)
growth <- 0.0523
sprintf('Growth: +%.2f%%', growth * 100)

sprintf() Bersifat Tervektorisasi

Ketika Anda meneruskan vektor sebagai argumen ke sprintf(), fungsi ini secara otomatis melakukan iterasi pada vektor dan mengembalikan satu string berformat untuk setiap elemen. String format itu sendiri diulang.

products <- c('Apple', 'Banana', 'Cherry')
prices   <- c(0.99, 0.59, 2.49)
sprintf('%-8s costs $%.2f', products, prices)

Beberapa Placeholder, Beberapa Argumen

Setiap placeholder menggunakan satu argumen secara berurutan. Anda dapat mencampur %d, %f, dan %s secara bebas dalam satu string format, dan semua argumen vektor diulang hingga mencapai panjang terpanjang.

months <- c('Jan', 'Feb', 'Mar')
revenue <- c(12500, 9800, 15300)
growth  <- c(0.05, -0.12, 0.18)
sprintf('%s: $%d (growth: %+.1f%%)',
        months, revenue, growth * 100)

sprintf() vs paste() — Kapan Menggunakan Masing-Masing

Gunakan paste()/paste0() untuk penggabungan sederhana; gunakan sprintf() ketika Anda memerlukan pemformatan numerik yang presisi (tempat desimal, lebar, padding). sprintf() lebih panjang, tetapi memberi Anda kendali penuh atas tampilan angka.

val <- 1234567.891
# paste: no formatting control
paste('Total:', val)
# sprintf: formatted as currency
sprintf('Total: $%,.2f', val)
# With manual formatting
sprintf('Total: $%15.2f', val)

Pemeriksaan Singkat

Kode format apa dalam sprintf() yang menyisipkan tanda persen harfiah % ke dalam keluaran?

Inti Penting sprintf()

Inti penting untuk sprintf():

  • %d bilangan bulat, %f bilangan titik mengambang, %s string, %e ilmiah, %g otomatis
  • %.2f = 2 tempat desimal; %10.2f = lebar 10, 2 tempat desimal
  • %-10s = rata kiri dalam kolom 10 karakter; %05d = diberi padding nol hingga 5 digit
  • %% = tanda persen harfiah dalam keluaran
  • sprintf() bersifat tervectorisasi terhadap argumennya
  • Lebih baik gunakan sprintf() daripada paste() ketika presisi pemformatan numerik penting
x <- 0.87654
cat(sprintf('Default f  : %f\n', x))
cat(sprintf('2 decimals : %.2f\n', x))
cat(sprintf('Percentage : %.1f%%\n', x * 100))
cat(sprintf('Scientific : %e\n', x))
cat(sprintf('Auto       : %g\n', x))
Gratis untuk memulai

Belajar R dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
43
Pelajaran
159

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Output Terformat dengan sprintf()” gratis?

Ya — teks lengkap “Output Terformat dengan sprintf()” 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 “Output Terformat dengan sprintf()”?

Atur tempat desimal, pengisi, dan perataan dengan string format sprintf. 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 2 dari 4.

Berapa lama pelajaran “Output Terformat dengan sprintf()” 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

  1. Membangun String dengan paste() dan paste0()
  2. Output Terformat dengan sprintf()
  3. Menampilkan Output dengan cat() dan print()
  4. Pengisian dan Perataan String
← Kembali ke R Academy