0Pricing
R Academy · Ders

Dize Dolgusu ve Hizalama

Sabit genişlikte ve hizalanmış metin çıktısı için formatC() ve format() kullanın.

Dize Dolgusu ve Hizalama, CoddyKit'te ücretsiz bir R Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, R Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. R Academy kursu toplamda 4 dersten oluşur.

Dizeleri Doldurmanın Önemi

Sabit genişlikte çıktı, düz metin tabloları, günlük dosyaları ve raporlar için gereklidir. R, değerleri sabit bir genişliğe doldurmak için formatC() ve format() işlevlerini sağlar; böylece sütunların tek aralıklı yazı görünümlerinde doğru hizalanması güvence altına alınır.

# 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() — Sağa Hizalı Doldurma

formatC(x, width = n), değeri en az n karakter genişliğine doldurur ve varsayılan olarak sağa hizalar. Boşluklar sol tarafa eklenir. Bu yöntem hem sayılar hem de dizeler için çalışır.

formatC('hi',   width = 10)
formatC(42,     width = 10)
formatC(3.14,   width = 10)

flag ile formatC() Sol Hizalama

flag = '-' bağımsız değeri, sol hizalamaya geçerek sağ tarafı boşluklarla doldurur. Bu, değerlerin sol kenardan başlamasını istediğiniz tablo sütunlarındaki dize etiketleri için idealdir.

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')
}

Sayısal Biçimlerle formatC()

formatC() biçim kodlarını destekler: sabit ondalık gösterim için 'f', bilimsel gösterim için 'e', ikisinden daha kısa olanı için 'g' ve tam sayı için 'd'. digits bağımsız değeri duyarlılığı denetler.

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() — Temel R Hizalaması

format(x, width = n, justify = 'left'/'right'/'centre'), genel amaçlı hizalama işlev unvanıdır. Herhangi bir R nesnesiyle çalışır ve eşit genişlikte dizelerden oluşan bir karakter vektörü döndürür. Sayılar için varsayılan hizalama sağa, dizeler için sola doğrudur.

words <- c('cat', 'elephant', 'ox')
format(words, width = 10)
format(words, width = 10, justify = 'right')

Sayısal Duyarlılık için format()

format(), nsmall (ondalık ayırıcıdan sonraki en az basamak sayısı) ve binlik ayraçlar için big.mark ile ondalık basamakları da denetler. Bunlar, mali değerleri görüntülemek için idealdir.

format(1234567.8,  big.mark = ',', nsmall = 2)
format(0.1,        nsmall = 4)
format(c(1.5, 100, 0.005), nsmall = 3)

strrep() — Dizeleri Tekrarlama

strrep(x, times), bir dizeyi belirtilen sayıda tekrarlar. Karakterleri elle birleştirmeden ayraç satırları, doldurma dizeleri veya görsel süslemeler oluşturmak için kullanın.

strrep('-', 40)
strrep('=-', 20)
strrep(c('ab', 'cd'), c(3, 2))
# Draw a simple table border
cat(strrep('=', 30), '\n')

Sabit Genişlikte Metin Tablosu Oluşturma

Düzenli bir düz metin tablosu oluşturmak için formatC(), cat() ve strrep() işlevlerini birleştirin. Bu kalıp, CLI araçlarında ve günlük dosyalarında yaygın olarak kullanılır.

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')

Doldurma için formatC() ve sprintf() Karşılaştırması

Hem formatC() hem de sprintf() doldurulmuş çıktı üretebilir. sprintf() basit durumlarda daha kısa bir kullanım sunar; formatC() ise aynı biçimlendirmeyi bütün bir vektöre uygulama konusunda daha esnektir.

x <- 42
# sprintf approach
sprintf('%10d', x)
sprintf('%-10s', 'hello')
# formatC approach
formatC(x,       width = 10)
formatC('hello', width = 10, flag = '-')

Bilimsel Gösterimi Denetleme

formatC(x, format='e', digits=n) veya options(scipen=999), R'nin bilimsel gösterime ne zaman geçeceğini denetler. scipen seçeneği bir cezadır; daha büyük değerler geçişten önce bilimsel gösterimi daha uzun süre bastırır.

# 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)

Uygulama: Kimlikleri ve Etiketleri Doldurma

Yaygın bir gereksinim, raporlardaki başına sıfır eklenmiş kimlikler veya sol tarafı doldurulmuş etiketlerdir. formatC() her ikisini de yönetir: sayılara sıfır eklemek için flag = '0', dizeleri sola hizalamak için flag = '-' kullanın.

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')
}

Kısa Kontrol

formatC() işlevindeki hangi bağımsız değer, çıktıyı belirtilen genişlik içinde sola hizalar?

Doldurma ve Hizalama: Temel Noktalar

Dize doldurma ve hizalamayla ilgili temel noktalar:

  • formatC(x, width=n) değeri n genişliğine kadar sağa doldurur; flag='-' sola hizalar
  • formatC(x, format='f', digits=2) sabit ondalık gösterim, 'e' ise bilimsel gösterim içindir
  • Genel amaçlı hizalama için format(x, justify='left'/'right'/'centre') kullanılır
  • Binlik ayraçlar ve sondaki ondalık basamaklar için format(x, big.mark=',', nsmall=2) kullanılır
  • strrep(s, n) bir dizeyi n kez tekrarlar; ayraç satırları için harikadır
  • Düz metin tablo çıktısı için cat() ile birleştirin
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')

Sıkça Sorulan Sorular

“Dize Dolgusu ve Hizalama” dersi ücretsiz mi?

Evet — “Dize Dolgusu ve Hizalama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve R Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. R Academy kursu toplamda 4 dersten oluşur.

“Dize Dolgusu ve Hizalama” dersinde ne öğreneceğim?

Sabit genişlikte ve hizalanmış metin çıktısı için formatC() ve format() kullanın. R Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

R Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te R Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“Dize Dolgusu ve Hizalama” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu R Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her R Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. paste() ve paste0() ile Dizeler Oluşturma
  2. sprintf() ile Biçimlendirilmiş Çıktı
  3. cat() ve print() ile Çıktı Görüntüleme
  4. Dize Dolgusu ve Hizalama
← R Academy Sayfasına Dön