33 (Re)-direcionando saídas texto e gráficas

Por "default"o R em uma sessão interativa produz saídas texto na janela do programa e saídas gráficas um uma janela gráfica. Portanto, a tela texto e a janela gráficas devem ser entendidas como saídas padrão, cujos conteúdos podem ser redirecionados pelo usuário para outro local (dispositivo) como, por exemplo, um arquivo.

33.1 Texto

Usando sink() As saídas em formato texto podem ser redirecionadas para um arquivo usando

  > sink("nome_do_arquivo")

que recebe como argumento o nome do arquivo (entre aspas) para onde queremos direcionar as saídas. Depois de digitarmos este comando os resultados deixam de ser mostrado na tela sendo enviados para o arquivo. Para encerrar o envio de conteúdo para o arquivo basta chamar a função sem argumento algum, e o conteúdo volta a ser mostrado na tela.

  > sink()

A função recebe tem ainda outros argumentos que podem controlar o envio de conteúdo para o arquivo. Por exemplo, o argumento echo recebe os valores TRUE ou FALSE indicando se os comandos devem ser incluídos no arquivo, ou somente os resultados dos comandos. Para mais detalhes veja args(sink) e help(sink).

Outras ferramentas para redirecionamento de conteúdo texto A função sink() redireciona as saídas para um arquivo em formato texto. Há ainda outras funções que podem redirecionar as saídas em outros formatos. Alguns (mas não todos!) exemplo são citados a seguir.

33.2 Gráficos

Abrindo e redirecionando janelas gráficas A janela gráfica é tipicamente aberta quando o usuário chama alguma função que produza um gráfico. Além desta forma, ela também pode ser aberta em branco quando o usuário chama a função de parâmetros gráficos par() ou por um dos seguintes comandos:

Para fechar a janela gráfica usamos:

  > dev.off()

Da mesma forma que sink() redireciona conteúdo texto, os função listadas a seguir redirecionam para os respectivos formatos gráficos.

Existem ainda outros dispositivos que podem ser específicos de uma detarminada plataforma (sistema operacional) Cada uma desta funções recebe argumentos específicos, mas todas elas recebem um argumento obrigatório, o nome do arquivo para onde o gráfico deve ser enviado. Os comandos a seguir exemplificam o uso de uma destas funções para gerar um arquivo do tipo .jpg que chamamos de exemplohist.jpg contendo um histograma de um conjunto de dados.

  > jpeg("exemplohist.jpg")
  > hist(rexp(150, rate=5))
  > dev.off()

Duas observações importantes:

1.
é obrigatório o uso de dev.off() ao final para "fechar"o arquivo
2.
a maioria dos dispositivos gera apenas 1 (um) gráfico por arquivo sendo necessário portanto gerar um arquivo para cada gráfico desejado.

Múltiplas janelas gráficas É possível abrir várioa janelas gráficas ao mesmo tempo, ou seja, dispositivos ("devices") gráficos múltiplos. Para abri-los basta usar as funções mencionadas acima (por ex. x11() no LINUX) Neste caso uma das janelas será a "ativa"onde novos gráficos serão produzidos e as demais ficam "inativas". Há funções para controlar o comportamento destas janelas

Por exemplo, suponha que voce esteja com uma janela gráfica aberta e queira enviar o gráfico que está sendo mostrado na tela (na janela ativa) para um arquivo meugrafico.jpeg. Para isto pode usar os comandos:

  > dev.copy(jpeg, file="meugrafico.jpeg")
  > dev.off()