0Pricing
R Academy · Lektion

Strings auffüllen und ausrichten

Verwenden Sie formatC() und format() für Textausgaben mit fester Breite und Ausrichtung.

Strings auffüllen und ausrichten ist eine kostenlose R Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des R Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der R Academy-Kurs umfasst insgesamt 4 Lektionen.

Warum Auffüllen von Zeichenketten wichtig ist

Ausgaben mit fester Breite sind für Tabellen im Klartext, Protokolldateien und Berichte unerlässlich. R stellt formatC() und format() bereit, um Werte auf eine feste Breite aufzufüllen und so eine korrekte Spaltenausrichtung in Monospace-Darstellungen sicherzustellen.

# 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() — Rechtsbündiges Auffüllen

formatC(x, width = n) füllt den Wert auf mindestens n Zeichen auf und richtet ihn standardmäßig rechtsbündig aus. Links werden Leerzeichen ergänzt. Dies funktioniert sowohl für Zahlen als auch für Zeichenketten.

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

formatC() mit Linksbündigkeit durch flag

Das Argument flag = '-' wechselt zur Linksbündigkeit und füllt die rechte Seite mit Leerzeichen auf. Das ist ideal für Zeichenkettenbeschriftungen in Tabellenspalten, deren Werte am linken Rand beginnen sollen.

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() mit numerischen Formaten

formatC() unterstützt Formatcodes: 'f' für feste Dezimaldarstellung, 'e' für wissenschaftliche Darstellung, 'g' für die kürzere der beiden Darstellungen und 'd' für Ganzzahlen. Das Argument digits steuert die Genauigkeit.

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() — Ausrichtung mit Base R

format(x, width = n, justify = 'left'/'right'/'centre') ist die generische Funktion zur Ausrichtung. Sie funktioniert mit jedem R-Objekt und gibt einen Zeichenvektor aus Zeichenketten gleicher Breite zurück. Die Standardausrichtung ist für Zahlen rechtsbündig und für Zeichenketten linksbündig.

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

format() für numerische Genauigkeit

format() steuert außerdem die Anzahl der Dezimalstellen mit nsmall (Mindestanzahl der Nachkommastellen) sowie die Tausendertrennzeichen mit big.mark. Diese Optionen eignen sich besonders für die Darstellung von Finanzzahlen.

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

strrep() — Zeichenketten wiederholen

strrep(x, times) wiederholt eine Zeichenkette eine bestimmte Anzahl von Malen. Verwenden Sie die Funktion zum Erstellen von Trennlinien, Auffüllzeichenketten oder visuellen Gestaltungselementen, ohne Zeichen manuell verketten zu müssen.

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

Eine Texttabelle mit fester Breite erstellen

Kombinieren Sie formatC() mit cat() und strrep(), um eine übersichtliche Klartexttabelle zu erstellen. Dieses Muster ist in CLI-Tools und Protokolldateien weit verbreitet.

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() und sprintf() zum Auffüllen

Sowohl formatC() als auch sprintf() können aufgefüllte Ausgaben erzeugen. sprintf() ist für einfache Fälle kompakter; formatC() ist flexibler, wenn dieselbe Formatierung auf einen gesamten Vektor angewendet werden soll.

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

Steuerung der wissenschaftlichen Schreibweise

formatC(x, format='e', digits=n) oder options(scipen=999) steuert, wann R zur wissenschaftlichen Schreibweise wechselt. Die Option scipen ist ein Malus; höhere Werte unterdrücken die wissenschaftliche Schreibweise länger, bevor gewechselt wird.

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

Praxis: IDs und Beschriftungen auffüllen

Häufig benötigt man IDs mit führenden Nullen oder links aufgefüllte Beschriftungen in Berichten. formatC() unterstützt beides: Verwenden Sie flag = '0' für Zahlen mit führenden Nullen und flag = '-' für linksbündige Zeichenketten.

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

Schnelltest

Welches Argument von formatC() richtet die Ausgabe innerhalb der angegebenen Breite linksbündig aus?

Auffüllen und Ausrichten: Die wichtigsten Punkte

Die wichtigsten Punkte zum Auffüllen und Ausrichten von Zeichenketten:

  • formatC(x, width=n) füllt rechts bis zur Breite n auf; flag='-' richtet linksbündig aus
  • formatC(x, format='f', digits=2) für feste Dezimaldarstellung; 'e' für wissenschaftliche Darstellung
  • format(x, justify='left'/'right'/'centre') für eine allgemeine Ausrichtung
  • format(x, big.mark=',', nsmall=2) für Tausendertrennzeichen und Nachkommastellen
  • strrep(s, n) wiederholt eine Zeichenkette n-mal – ideal für Trennlinien
  • Zur Ausgabe von Klartexttabellen mit cat() kombinieren
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')

Häufig gestellte Fragen

Ist die Lektion „Strings auffüllen und ausrichten“ kostenlos?

Ja — der vollständige Text von „Strings auffüllen und ausrichten“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des R Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der R Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Strings auffüllen und ausrichten“?

Verwenden Sie formatC() und format() für Textausgaben mit fester Breite und Ausrichtung. Du übst R Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um R Academy zu starten?

Keine Vorkenntnisse erforderlich. R Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Strings auffüllen und ausrichten“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser R Academy-Lektion Code schreiben und ausführen?

Ja. Jede R Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Strings mit paste() und paste0() erstellen
  2. Formatierte Ausgabe mit sprintf()
  3. Ausgabe mit cat() und print() anzeigen
  4. Strings auffüllen und ausrichten
← Zurück zu R Academy