Memformat dengan sprintf()
Termasuk bagian Logika dan Alur dalam perjalanan R di Coddy. Pelajaran 2 dari 64.
sprintf() membangun string dari templat. Setiap placeholder % diganti dengan argumen berikutnya: %s untuk teks, %d untuk bilangan bulat, dan %f untuk bilangan desimal.
name <- "Ada"
age <- 36
print(sprintf("%s is %d years old", name, age))Output:
[1] "Ada is 36 years old"%d hanya menerima bilangan bulat: sprintf("%d", 2.5) berhenti dengan error.
Presisi antara % dan f menentukan jumlah angka desimal, jadi %.2f membulatkan hingga dua tempat desimal:
total <- 3 * 4.5 * 1.2
print(sprintf("Total: %.2f", total))Output:
[1] "Total: 16.20"Lebar mengisi nilai dengan spasi hingga mencapai jumlah karakter tersebut: %5d menambahkan spasi di kiri, %-6s menambahkan spasi di kanan, dan %03d mengisi dengan angka nol. %% mencetak tanda persen.
print(sprintf("[%5d]", 42))
print(sprintf("[%-6s]", "tea"))
print(sprintf("%03d", 7))
print(sprintf("%d%%", 85))Output:
[1] "[ 42]"
[1] "[tea ]"
[1] "007"
[1] "85%"sprintf() menggunakan vektorisasi: dengan argumen berupa vektor, fungsi ini mengembalikan satu string untuk setiap elemen. cat() dengan sep = "\n" mencetak setiap string pada barisnya sendiri.
items <- c("tea", "cake")
prices <- c(4, 12.5)
lines <- sprintf("%-5s %6.2f", items, prices)
cat(lines, sep = "\n")Output:
tea 4.00
cake 12.50Tantangan
MudahLengkapi receipt_line(item, qty, price). Kembalikan item, kuantitas, dan total baris (qty * price) dalam format tea x3 = 13.50: item, spasi, x diikuti kuantitas, lalu = dan total dengan tepat dua angka desimal.
Code yang disediakan membaca item, kuantitas, dan harga (masing-masing satu per baris), lalu mencetak nilai yang dikembalikan.
Coba sendiri
receipt_line <- function(item, qty, price) {
# Tulis kodemu di sini
""
}
# Kode input/output yang disediakan: biarkan apa adanya
input <- suppressWarnings(readLines(file("stdin")))
cat(receipt_line(input[1], as.integer(input[2]), as.numeric(input[3])), sep = "\n")
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Mendalami string
Substring dengan substr()Memformat dengan sprintf()Memisahkan dan MenggabungkanMencari stringMengganti TeksRangkuman: Pembuat Nama Pengguna4Matriks
Membuat MatriksMengakses Elemen MatriksRingkasan Baris dan KolomAritmetika MatriksRangkuman: Denah Tempat Duduk2Pencarian Nilai-Kunci
Pencarian pada Vector BernamaMemeriksa KunciMenambahkan dan Menghapus KunciMenelusuri NamaUlasan: Meja Saham5Proyek, Buku Nilai
Menambahkan SiswaMencatat Nilai3Set dan Penghitungan
Nilai UnikOperasi setPengujian KeanggotaanMenghitung dengan table()Ulasan: Tamu Acara6Fungsi sebagai Nilai
Fungsi AnonimMengirim FungsiMengembalikan FungsiClosure dengan StateRangkuman: Aturan Diskon9Data Frame
Membuat Data FrameKolom dan BarisMemfilter BarisMenambahkan dan MengurutkanRangkuman: Laporan Penjualan12Proyek: Pelacak Pengeluaran
Mencatat PengeluaranTotal PengeluaranLatihan sendiri: Compiler R online