A razão pelo qual estou escrevendo este howto é facilitar a escrita de textos científicos, especialmente estatísticos, com o auxílio de duas ferramentas poderosas. De um lado, para a redação do texto, temos o LaTeX, que permite a compilação do texto. Do outro, temos o R que é um poderoso software estatístico similar a linguagem S desenvolvido pelo Bell Laboratories que é usado para o cálculo de dados e a construção de gráficos.
Este HowTo é destinado à pessoas que já possuem um conhecimento de LaTeX e R separadamente. Principalmente à estatísticos e aqueles que queiram usar o poder do R associado ao LaTeX.
O Sweave é uma biblioteca do R que permite a interpretação de uma seção do R dentro do texto em LaTeX.
O script Sweave.sh nada mais é do que estas linhas:
#!/bin/sh echo "library(tools); Sweave(\"$1\")" | R --no-save --no-restore
A estrutura do arquivo será a estrutura de um .tex normal, o sweave apenas interpretará o código que ele reconhece. O restante ficara como o original. Exemplo:
\documentclass [a4paper]{article}
\title {Sweave Example 1}
\author {Fábio Rampazzo Mathias }
\begin {document}
\maketitle
Neste exemplo mostramos como é o fonte de um arquivo a ser interpretado usando sweave.
<<>>=
(código em R)
@
\end{document}
Perceba que o documento é igual ao documento .tex, a única diferença é da sintaxe "<<>>=" até "@", que será o código interpretado pelo R. O sweave abrirá o R, executará todos os códigos do R que estão no .snw e unirá os códigos não-R com os códigos R já tratados dentro de um .tex.
Obs: a opção label pode ser escondida se usada como primeira opção. Exemplo: "<<label=Fabio,fig=TRUE>>=" é igual a escrever "<<Fabio,fig=TRUE>>=".
Muitas vezes, quando escrevemos um texto, precisamos do valor de uma expressão, para isso, usamos o comando \Sexpr{expressão} dentro do LaTeX. Ele retornará o valor da expressão. Por exemplo, se dentro do texto usarmos \Sexpr{sqrt(16)}, quando compilarmos aparecerá '4' (sem as aspas). O \Sexpr executa uma expressão na mesma seção do R em que você já calculou algo. Portanto é possível chamar valores de variáveis do R para dentro do texto.
O Sweave permite também a reutilização de códigos. Ou seja, se você já fez o cálculo de uma variável e precisa dela em outro bloco, você pode chamá-la por "<<label denominado>>". Exemplo:
<<a>>= x <- 20; @ <<>>= <<a>> y <- 20; x + y; @
Uma vez baixado o script Sweave.sh, de um:
$ chmod +x Sweave.sh
Após feito isso, compile seu script de sweave com:
$ ./Sweave.sh script.snw
Isso gerará um arquivo script.tex, alguns arquivos .eps (se tiver figura em seu texto) e um .pdf. O .pdf é a visualização dos eps. Agora, é só compilar o .tex usando:
$ latex script.tex
Pronto! Seu texto está compiladinho em script.dvi, se preferir gerar a saida em .pdf é só completar:
$ dvipdf script.dvi
Observação: seria legal copiar o sweave.sh para dentro de um de seus PATHs para poder chamá-lo de qualquer local!
Vimos neste pequeno HowTo, como usar o Sweave para facilitar o trabalho não prioritário, a digitalização, da análise.
| Authors: | Fábio Rampazzo Mathias |
|---|---|
| Version: | 1.0 |