0Pricing
R Academy · Lektion

Formatierte Ausgabe mit sprintf()

Steuern Sie Dezimalstellen, Auffüllung und Ausrichtung mit sprintf-Formatstrings.

Formatierte Ausgabe mit sprintf() ist eine kostenlose R Academy-Lektion auf CoddyKit. Dies ist Lektion 2 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.

Grundlagen von sprintf()

sprintf() formatiert Zeichenketten mithilfe einer Formatzeichenkette mit Platzhaltern. Die Funktion arbeitet genau wie printf aus C. Das erste Argument ist die Formatvorlage; die nachfolgenden Argumente füllen die Platzhalter in der angegebenen Reihenfolge.

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

Platzhalter für Ganzzahlen und Zeichenketten

%d formatiert eine Ganzzahl, %s eine Zeichenkette und %f eine Gleitkommazahl. Jeder Platzhalter wird der Reihe nach durch das entsprechende Argument ersetzt.

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

Dezimalstellen festlegen

%.2f bedeutet: als Gleitkommazahl mit genau 2 Dezimalstellen formatieren. Die Zahl zwischen . und f legt die Genauigkeit fest. Das ist ideal für Währungen, Prozentsätze und wissenschaftliche Werte.

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

Feldbreite und Auffüllen

Eine Zahl vor dem Formatbuchstaben legt die minimale Feldbreite fest. Werte werden standardmäßig rechtsbündig ausgerichtet und links mit Leerzeichen aufgefüllt. Das ist nützlich, um Spalten in Klartextberichten auszurichten.

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

Linksbündige Ausrichtung mit dem Flag -

Setzen Sie dem Breitenwert - voran, um Text innerhalb des Feldes linksbündig auszurichten. Dies ist die übliche Methode, um linksbündige Spalten in Textausgaben mit fester Breite zu erzeugen.

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

Wissenschaftliche Schreibweise mit %e und %g

%e erzwingt die wissenschaftliche Schreibweise (z. B. 1.23e+04). %g wählt automatisch die kürzere Darstellung aus %f und %e – nützlich, wenn Werte mehrere Größenordnungen umfassen.

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

Mit dem Flag 0 mit Nullen auffüllen

Setzen Sie der Breite 0 voran, um Zahlen anstelle von Leerzeichen mit führenden Nullen aufzufüllen. Das wird häufig für IDs, Datumsangaben und Dateinummerierungen mit fester Stellenzahl verwendet.

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

Prozentformatierung

Um ein Verhältnis als Prozentsatz anzuzeigen, multiplizieren Sie es mit 100 und verwenden Sie %.1f%%. Das doppelte %% fügt ein wörtliches Prozentzeichen in die Ausgabe ein (ein einzelnes % würde als Beginn eines Platzhalters interpretiert).

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

sprintf() ist vektorisiert

Wenn Sie einen Vektor als Argument an sprintf() übergeben, durchläuft die Funktion automatisch dessen Elemente und gibt für jedes Element eine formatierte Zeichenkette zurück. Die Formatzeichenkette selbst wird recycelt.

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

Mehrere Platzhalter, mehrere Argumente

Jeder Platzhalter verbraucht der Reihe nach ein Argument. Sie können %d, %f und %s frei in einer einzigen Formatzeichenkette kombinieren, und alle Vektorargumente werden auf die Länge des längsten Arguments recycelt.

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() – wann welche Funktion verwenden?

Verwenden Sie paste()/paste0() für einfache Verkettungen und sprintf(), wenn Sie eine präzise numerische Formatierung benötigen (Dezimalstellen, Breiten, Auffüllen). sprintf() ist ausführlicher, bietet Ihnen aber vollständige Kontrolle über das Aussehen von Zahlen.

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)

Kurze Überprüfung

Welcher Formatcode in sprintf() fügt ein wörtliches Prozentzeichen % in die Ausgabe ein?

Die wichtigsten Punkte zu sprintf()

Die wichtigsten Punkte zu sprintf():

  • %d Ganzzahl, %f Gleitkommazahl, %s Zeichenkette, %e wissenschaftliche Schreibweise, %g automatisch
  • %.2f = 2 Dezimalstellen; %10.2f = Breite 10, 2 Dezimalstellen
  • %-10s = linksbündig in einem 10 Zeichen breiten Feld; %05d = mit Nullen auf 5 Stellen auffüllen
  • %% = wörtliches Prozentzeichen in der Ausgabe
  • sprintf() ist über seine Argumente vektorisiert
  • Verwenden Sie sprintf() statt paste(), wenn es auf präzise numerische Formatierung ankommt
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))

Häufig gestellte Fragen

Ist die Lektion „Formatierte Ausgabe mit sprintf()“ kostenlos?

Ja — der vollständige Text von „Formatierte Ausgabe mit sprintf()“ 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 „Formatierte Ausgabe mit sprintf()“?

Steuern Sie Dezimalstellen, Auffüllung und Ausrichtung mit sprintf-Formatstrings. 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 2 von 4.

Wie lange dauert die Lektion „Formatierte Ausgabe mit sprintf()“?

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