0Pricing
R Academy · Leçon

Remplissage et alignement des chaînes

Utilisez formatC() et format() pour produire du texte de largeur fixe et aligné.

Remplissage et alignement des chaînes est une leçon R Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage R Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours R Academy comprend 4 leçons au total.

Pourquoi le remplissage des chaînes est important

Une sortie de largeur fixe est essentielle pour les tableaux en texte brut, les fichiers journaux et les rapports. R fournit formatC() et format() pour compléter les valeurs jusqu’à une largeur fixe, afin de garantir un alignement correct des colonnes dans les affichages à chasse fixe.

# 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() — Remplissage aligné à droite

formatC(x, width = n) complète la valeur pour atteindre au moins n caractères, en l’alignant à droite par défaut. Des espaces sont ajoutées à gauche. Cela fonctionne aussi bien avec les nombres qu’avec les chaînes.

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

formatC() — Alignement à gauche avec flag

L’argument flag = '-' active l’alignement à gauche et ajoute des espaces à droite. C’est idéal pour les libellés textuels dans les colonnes d’un tableau lorsque vous souhaitez que les valeurs commencent au bord gauche.

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() avec des formats numériques

formatC() prend en charge plusieurs codes de format : 'f' pour les décimales à virgule fixe, 'e' pour la notation scientifique, 'g' pour choisir la plus courte des deux, et 'd' pour les entiers. L’argument digits contrôle la précision.

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() — Alignement avec R de base

format(x, width = n, justify = 'left'/'right'/'centre') est la fonction générique d’alignement. Elle fonctionne avec n’importe quel objet R et renvoie un vecteur de caractères composé de chaînes de même largeur. Par défaut, la justification des nombres est à droite et celle des chaînes à gauche.

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

format() pour la précision numérique

format() contrôle également le nombre de décimales avec nsmall (nombre minimal de chiffres après la virgule) et big.mark pour les séparateurs de milliers. Ces options sont idéales pour afficher des montants financiers.

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

strrep() — Répéter des chaînes

strrep(x, times) répète une chaîne un nombre donné de fois. Utilisez-la pour construire des lignes de séparation, des chaînes de remplissage ou des éléments décoratifs visuels, sans concaténer manuellement les caractères.

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

Construire un tableau textuel de largeur fixe

Combinez formatC() avec cat() et strrep() pour construire un tableau propre en texte brut. Ce modèle est courant dans les outils CLI et les fichiers journaux.

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() ou sprintf() pour le remplissage

formatC() et sprintf() peuvent toutes deux produire une sortie complétée. sprintf() est plus concise pour les cas simples ; formatC() est plus flexible pour appliquer le même formatage à un vecteur entier.

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

Contrôler la notation scientifique

formatC(x, format='e', digits=n) ou options(scipen=999) contrôle le moment où R passe à la notation scientifique. L’option scipen représente une pénalité : plus sa valeur est élevée, plus longtemps la notation scientifique est évitée avant le changement.

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

En pratique : compléter des identifiants et des libellés

Il est fréquent d’avoir besoin d’identifiants complétés par des zéros ou de libellés complétés à gauche dans les rapports. formatC() gère les deux cas : utilisez flag = '0' pour compléter les nombres avec des zéros et flag = '-' pour aligner les chaînes à gauche.

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

Vérification rapide

Quel argument de formatC() aligne la sortie à gauche dans la largeur spécifiée ?

Remplissage et alignement : points essentiels

Points essentiels concernant le remplissage et l’alignement des chaînes :

  • formatC(x, width=n) complète à droite jusqu’à la largeur n ; flag='-' aligne à gauche
  • formatC(x, format='f', digits=2) pour les décimales à virgule fixe ; 'e' pour la notation scientifique
  • format(x, justify='left'/'right'/'centre') pour l’alignement générique
  • format(x, big.mark=',', nsmall=2) pour les séparateurs de milliers et les décimales finales
  • strrep(s, n) répète une chaîne n fois — idéal pour les lignes de séparation
  • Combinez ces fonctions avec cat() pour afficher des tableaux en texte brut
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')

Questions Fréquemment Posées

La leçon « Remplissage et alignement des chaînes » est-elle gratuite ?

Oui — le texte complet de « Remplissage et alignement des chaînes » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours R Academy, passe à CoddyKit PRO. Le cours R Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Remplissage et alignement des chaînes » ?

Utilisez formatC() et format() pour produire du texte de largeur fixe et aligné. Tu pratiques R Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer R Academy ?

Aucune expérience préalable n'est requise. R Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Remplissage et alignement des chaînes » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon R Academy ?

Oui. Chaque leçon R Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Construire des chaînes avec paste() et paste0()
  2. Sortie mise en forme avec sprintf()
  3. Afficher la sortie avec cat() et print()
  4. Remplissage et alignement des chaînes
← Retour à R Academy