0Pricing
R Academy · Lezione

Visualizzazione dell'output con cat() e print()

Distingua cat() per l'output nella console da print() per gli oggetti.

Visualizzazione dell'output con cat() e print() è una lezione R Academy gratuita su CoddyKit. Questa è la lezione 3 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.

print() — La funzione di output predefinita

print() è il metodo predefinito di R per visualizzare gli oggetti. Utilizza la classe dell'oggetto per selezionare il metodo di formattazione appropriato. Nelle sessioni interattive, digitare il nome di una variabile equivale a chiamare print() su di essa.

x <- c(1, 2, 3, 4, 5)
print(x)
# Equivalent to:
x

cat() — Output di caratteri non elaborato

cat() concatena e restituisce i propri argomenti come testo non elaborato, senza virgolette circostanti, senza indicatori di indice come [1] e, per impostazione predefinita, senza una nuova riga finale. È progettata per l'output di testo formattato, non per visualizzare oggetti R.

name <- 'Alice'
age  <- 30
cat('Name:', name, '\n')
cat('Age:', age, '\n')
cat('Score:', 92.5, '\n')

Differenza principale: virgolette e [1]

La differenza più evidente riguarda il modo in cui vengono visualizzate le stringhe di caratteri. print() racchiude le stringhe tra virgolette e aggiunge [1]; cat() restituisce i caratteri non elaborati senza alcuna decorazione.

msg <- 'Hello World'
print(msg)
cat(msg, '\n')

cat() con l'argomento sep

cat() accetta un argomento sep, inserito tra ogni elemento dell'output. Il valore predefinito è uno spazio singolo. Utilizzate sep = '' per non inserire alcun separatore, oppure qualsiasi altra stringa per formattare l'output con precisione.

cat('a', 'b', 'c', sep = '')
cat('a', 'b', 'c', sep = '-')
cat(1:5, sep = ', ')
cat('x =', 42, sep = '')

cat() con l'argomento fill

L'argomento fill aggiunge una nuova riga quando l'output supera una determinata larghezza (in caratteri). Impostando fill = TRUE viene utilizzata l'opzione width corrente. È utile per andare a capo quando si visualizzano sequenze di parole lunghe.

words <- c('The', 'quick', 'brown', 'fox', 'jumps',
           'over', 'the', 'lazy', 'dog')
cat(words, fill = 30)

Dispatch dei metodi di print()

print() è una funzione generica: esegue il dispatch verso un metodo specifico per la classe. Ad esempio, print.data.frame formatta ordinatamente i data frame, mentre print.factor mostra i livelli. Per questo la stessa chiamata produce risultati diversi per oggetti diversi.

# print dispatches differently per class
print(42L)                        # integer
print(factor(c('a', 'b', 'a')))   # factor with levels
print(list(x = 1, y = 'hi'))      # list

invisible() — Disabilitare la stampa automatica

invisible(x) restituisce il proprio argomento, ma impedisce la stampa automatica quando un valore viene restituito da una funzione o da un'espressione. Viene utilizzata nelle funzioni che restituiscono valori senza produrre output, come gli operatori di assegnazione.

# Explicit print shows the value
f <- function(x) invisible(x * 2)
result <- f(5)
# Nothing printed automatically
f(5)
# But print() forces it
print(f(5))

message() — Verso stderr

message() scrive in stderr anziché in stdout. Aggiunge automaticamente una nuova riga. A differenza di cat() o print(), i messaggi possono essere soppressi con suppressMessages() e intercettati con tryCatch().

message('This goes to stderr')
cat('This goes to stdout\n')
# Suppress messages:
suppressMessages(message('hidden'))
cat('Still visible\n')

Quando utilizzare cat() invece di print()

Utilizzate cat() quando desiderate produrre un output testuale leggibile per le persone, ad esempio righe di log, messaggi di avanzamento o report formattati. Utilizzate print() quando desiderate esaminare fedelmente gli oggetti R, preservandone le informazioni sul tipo e la struttura.

# cat() for formatted output
cat(sprintf('Processing %d records...\n', 500))
cat('Done.\n')

# print() to inspect objects
result <- list(n = 500, mean = 4.2, sd = 1.1)
print(result)

print() sui data frame

print.data.frame formatta i data frame con numeri di riga, intestazioni delle colonne e valori allineati. Potete controllare quante righe visualizzare usando la sintassi print(df, n = k) oppure chiamando head() prima della stampa.

df <- data.frame(
  name  = c('Alice', 'Bob', 'Carol'),
  score = c(88, 95, 72)
)
print(df)

cat() per l'avanzamento dei cicli

Un uso pratico di cat() consiste nel visualizzare l'avanzamento di un ciclo. Poiché cat() non aggiunge nuove righe automaticamente, potete costruire una riga progressivamente e poi terminarla con '\n'.

for (i in 1:5) {
  cat(sprintf('Processing file %d of 5...\n', i))
}
cat('All files processed.\n')

Verifica rapida

Quale funzione di output scrive in stderr, aggiunge automaticamente una nuova riga e può essere soppressa con suppressMessages()?

Funzioni di output: concetti chiave

Concetti chiave sulle funzioni di output di R:

  • print(x) — esamina gli oggetti R; utilizza una formattazione specifica per la classe; aggiunge [1] e le virgolette
  • cat(...) — output di testo non elaborato; senza virgolette; senza nuova riga automatica; utilizzate esplicitamente '\n'
  • cat() accetta sep e fill per controllare la formattazione
  • invisible(x) — restituisce x senza stamparlo automaticamente
  • message() — scrive in stderr; aggiunge automaticamente una nuova riga; viene soppresso da suppressMessages()
  • Utilizzate insieme cat() e sprintf() per report e log formattati
x <- 'result'
print(x)              # shows: [1] "result"
cat(x, '\n')          # shows: result
message('info: ', x)  # goes to stderr
f <- function() invisible(42)
f()                   # nothing printed
print(f())            # forces print: [1] 42

Domande Frequenti

La lezione «Visualizzazione dell'output con cat() e print()» è gratuita?

Sì — il testo completo di «Visualizzazione dell'output con cat() e print()» è 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 «Visualizzazione dell'output con cat() e print()»?

Distingua cat() per l'output nella console da print() per gli oggetti. 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 3 di 4.

Quanto tempo richiede la lezione «Visualizzazione dell'output con cat() e print()»?

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

  1. Creazione di stringhe con paste() e paste0()
  2. Output formattato con sprintf()
  3. Visualizzazione dell'output con cat() e print()
  4. Riempimento e allineamento delle stringhe
← Torna a R Academy