Riempimento e allineamento delle stringhe
Usi formatC() e format() per produrre testo a larghezza fissa e allineato.
Riempimento e allineamento delle stringhe è una lezione R Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento R Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso R Academy include 4 lezioni in totale.
Perché è importante il riempimento delle stringhe
L'output a larghezza fissa è essenziale per le tabelle in testo semplice, i file di log e i report. R mette a disposizione formatC() e format() per aggiungere riempimento fino a una larghezza fissa, assicurando il corretto allineamento delle colonne nelle visualizzazioni a spaziatura fissa.
# 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() — Riempimento allineato a destra
formatC(x, width = n) aggiunge riempimento fino a una larghezza di almeno n caratteri, allineando il contenuto a destra per impostazione predefinita. Gli spazi vengono aggiunti a sinistra. Funziona sia con i numeri sia con le stringhe.
formatC('hi', width = 10)
formatC(42, width = 10)
formatC(3.14, width = 10)Allineamento a sinistra di formatC() con flag
L'argomento flag = '-' passa all'allineamento a sinistra, aggiungendo spazi sul lato destro. È ideale per le etichette testuali nelle colonne delle tabelle quando desiderate che i valori inizino dal margine sinistro.
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() con formati numerici
formatC() supporta i codici di formato: 'f' per i decimali a virgola fissa, 'e' per la notazione scientifica, 'g' per scegliere il più breve tra i due e 'd' per gli interi. L'argomento digits controlla la precisione.
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() — Allineamento con R base
format(x, width = n, justify = 'left'/'right'/'centre') è la funzione generica per l'allineamento. Funziona con qualsiasi oggetto R e restituisce un vettore di caratteri composto da stringhe di uguale larghezza. La giustificazione predefinita è a destra per i numeri e a sinistra per le stringhe.
words <- c('cat', 'elephant', 'ox')
format(words, width = 10)
format(words, width = 10, justify = 'right')format() per la precisione numerica
format() controlla anche le cifre decimali con nsmall (numero minimo di cifre dopo il separatore decimale) e i separatori delle migliaia con big.mark. Queste opzioni sono ideali per visualizzare dati finanziari.
format(1234567.8, big.mark = ',', nsmall = 2)
format(0.1, nsmall = 4)
format(c(1.5, 100, 0.005), nsmall = 3)strrep() — Ripetizione delle stringhe
strrep(x, times) ripete una stringa per un determinato numero di volte. Utilizzatela per creare righe separatrici, stringhe di riempimento o elementi decorativi visivi senza concatenare manualmente i caratteri.
strrep('-', 40)
strrep('=-', 20)
strrep(c('ab', 'cd'), c(3, 2))
# Draw a simple table border
cat(strrep('=', 30), '\n')Creazione di una tabella di testo a larghezza fissa
Combinate formatC() con cat() e strrep() per creare una tabella ordinata in testo semplice. Questo schema è comune negli strumenti CLI e nei file di log.
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() e sprintf() per il riempimento
Sia formatC() sia sprintf() possono produrre un output con riempimento. sprintf() è più concisa nei casi semplici; formatC() è più flessibile quando si applica la stessa formattazione a un intero vettore.
x <- 42
# sprintf approach
sprintf('%10d', x)
sprintf('%-10s', 'hello')
# formatC approach
formatC(x, width = 10)
formatC('hello', width = 10, flag = '-')Controllo della notazione scientifica
formatC(x, format='e', digits=n) o options(scipen=999) controllano quando R passa alla notazione scientifica. L'opzione scipen rappresenta una penalità: valori più alti ritardano il passaggio alla notazione scientifica.
# 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)In pratica: riempimento di ID ed etichette
Un'esigenza comune consiste nell'aggiungere zeri iniziali agli ID o riempire a sinistra le etichette nei report. formatC() gestisce entrambi i casi: utilizzate flag = '0' per aggiungere zeri iniziali ai numeri e flag = '-' per allineare a sinistra le stringhe.
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')
}Verifica rapida
Quale argomento di formatC() allinea l'output a sinistra all'interno della larghezza specificata?
Riempimento e allineamento: concetti chiave
Concetti chiave sul riempimento e l'allineamento delle stringhe:
formatC(x, width=n)aggiunge riempimento a destra fino alla larghezza n;flag='-'allinea a sinistraformatC(x, format='f', digits=2)per i decimali a virgola fissa;'e'per la notazione scientificaformat(x, justify='left'/'right'/'centre')per l'allineamento genericoformat(x, big.mark=',', nsmall=2)per i separatori delle migliaia e le cifre decimali finalistrrep(s, n)ripete una stringa n volte: è ideale per le righe separatrici- Combinate queste funzioni con
cat()per l'output di tabelle in testo semplice
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')Domande Frequenti
La lezione «Riempimento e allineamento delle stringhe» è gratuita?
Sì — il testo completo di «Riempimento e allineamento delle stringhe» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso R Academy, passa a CoddyKit PRO. Il corso R Academy include 4 lezioni in totale.
Cosa imparerò in «Riempimento e allineamento delle stringhe»?
Usi formatC() e format() per produrre testo a larghezza fissa e allineato. Eserciti R Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare R Academy?
Non è richiesta alcuna esperienza precedente. R Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Riempimento e allineamento delle stringhe»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione R Academy?
Sì. Ogni lezione R Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Creazione di stringhe con paste() e paste0()
- Output formattato con sprintf()
- Visualizzazione dell'output con cat() e print()
- Riempimento e allineamento delle stringhe