0Pricing
R Academy · Aula

Exibindo saída com cat() e print()

Diferencie cat() para saída no console de print() para objetos.

Exibindo saída com cat() e print() é uma aula grátis de R Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de R Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de R Academy inclui 4 aulas no total.

print() — A função de saída padrão

print() é o método padrão do R para exibir objetos. Ele usa a classe do objeto para selecionar o método de formatação apropriado. Em sessões interativas, digitar o nome de uma variável equivale a chamar print() para ela.

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

cat() — Saída de caracteres brutos

cat() concatena e exibe seus argumentos como texto bruto, sem aspas ao redor, sem marcadores de índice como [1] e, por padrão, sem uma quebra de linha ao final. Ele foi desenvolvido para a saída de texto formatado, não para exibir objetos do R.

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

Diferença principal: aspas e [1]

A diferença mais visível está na forma como as cadeias de caracteres são exibidas. print() coloca as cadeias entre aspas e adiciona [1]; cat() exibe os caracteres brutos, sem qualquer decoração.

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

cat() com o argumento sep

cat() aceita um argumento sep, que é colocado entre cada item da saída. O padrão é um único espaço. Use sep = '' para não usar separador ou qualquer outra cadeia para formatar a saída com precisão.

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

cat() com o argumento fill

O argumento fill adiciona uma quebra de linha quando a saída excede uma largura determinada (em caracteres). Definir fill = TRUE usa a opção atual de width. Isso é útil para quebrar sequências longas de palavras em várias linhas.

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

Seleção de métodos de print()

print() é uma função genérica — ela seleciona um método específico da classe. Por exemplo, print.data.frame formata quadros de dados de maneira organizada, print.factor exibe níveis, entre outros. Por isso, a mesma chamada produz resultados diferentes para objetos diferentes.

# 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() — Suprimir a impressão automática

invisible(x) retorna seu argumento, mas suprime a impressão automática quando um valor é retornado por uma função ou expressão. Ele é usado em funções que retornam valores silenciosamente, como os operadores de atribuição.

# 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() — Para stderr

message() escreve em stderr, e não em stdout. Ele adiciona automaticamente uma quebra de linha. Diferentemente de cat() ou print(), as mensagens podem ser suprimidas com suppressMessages() e capturadas com tryCatch().

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

Quando usar cat() ou print()

Use cat() quando quiser produzir uma saída de texto legível para as pessoas — linhas de registro, mensagens de progresso e relatórios formatados. Use print() quando quiser examinar objetos do R fielmente, preservando as informações de tipo e a estrutura.

# 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() em quadros de dados

print.data.frame formata quadros de dados com números de linha, cabeçalhos de coluna e valores alinhados. Você pode controlar quantas linhas são exibidas com o estilo print(df, n = k) ou usando head() antes da impressão.

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

cat() para o progresso de laços

Um uso prático de cat() é exibir o progresso de um laço. Como cat() não adiciona quebras de linha automaticamente, você pode construir uma linha gradualmente e depois concluí-la com '\n'.

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

Verificação rápida

Qual função de saída escreve em stderr, adiciona automaticamente uma quebra de linha e pode ser suprimida com suppressMessages()?

Funções de saída: principais conclusões

Principais conclusões sobre as funções de saída do R:

  • print(x) — examina objetos do R; usa formatação específica da classe; adiciona [1] e aspas
  • cat(...) — saída de texto bruto; sem aspas; sem quebra de linha automática; use '\n' explicitamente
  • cat() aceita sep e fill para controlar a formatação
  • invisible(x) — retorna x sem imprimi-lo automaticamente
  • message() — vai para stderr; adiciona quebra de linha automaticamente; é suprimido por suppressMessages()
  • Use cat()/sprintf() em conjunto para relatórios formatados e registros
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

Perguntas Frequentes

A aula “Exibindo saída com cat() e print()” é grátis?

Sim — o texto completo de “Exibindo saída com cat() e print()” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de R Academy, atualize para CoddyKit PRO. O curso de R Academy inclui 4 aulas no total.

O que vou aprender em “Exibindo saída com cat() e print()”?

Diferencie cat() para saída no console de print() para objetos. Você pratica R Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar R Academy?

Nenhuma experiência prévia é necessária. R Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Exibindo saída com cat() e print()”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de R Academy?

Sim. Cada aula de R Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Criando strings com paste() e paste0()
  2. Saída formatada com sprintf()
  3. Exibindo saída com cat() e print()
  4. Preenchimento e alinhamento de strings
← Voltar para R Academy