You are on page 1of 6

TexShop e Sweave em Portugues

Freire, F.

Departamento de Eng Qumica, CEBQ, IST-UTL, Portugal
20 de Setembro de 2013
Resumo
Mostra-se como utilizar R num documento em L
A
T
E
X escrito em por-
tugues (ou noutra lngua com caracteres acentuados), atraves do Sweave
no TexShop para Mac OS X Lion.
1 Introducao
A utilizacao de R atraves do Sweave num documento em L
A
T
E
X pode ser com-
plicada se nao quisermos utilizar a linha de comando.
Tudo se deve a problemas da codicacao de caracteres.
R e sem d uvida uma ferramenta imprescindvel para tratamento estatstico de
dados. Por outro lado, o L
A
T
E
X e uma forma de produzir documentos com
vantagens conhecidas.
Neste documento pretende-se descrever como num ambiente Mac OS X Lion se
pode integrar a execucao de codigo em R num documento escrito em portugues
no L
A
T
E
X.
Nao e inten cao deste documento ensinar Sweave nem qualquer um dos outros
pacotes utilizados. Para isso consulte a internet.
2 Ambiente de Trabalho
O sistema operativo e Mac OS X Lion:
Darwin Kernel Version 11.3.0: Thu Jan 12 18:47:41 PST 2012
O editor de L
A
T
E
X e o TeXShop v3.04.
A distribui cao de T
E
X e:
TeX 3.1415926 (TeX Live 2011)
kpathsea version 6.0.1
Copyright 2011 D.E. Knuth.

Obrigado a todos os documentos que aparecem no Google!


1
There is NO warranty. Redistribution of this software is
covered by the terms of both the TeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the TeX source.
Primary author of TeX: D.E. Knuth.
A distribui cao de R e:
R version 2.14.1 (2011-12-22)
Copyright (C) 2011 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under the terms of the
GNU General Public License version 2.
For more information about these matters see
http://www.gnu.org/licenses/.
O Sweave.engine foi ligeiramente alterado para que seja utilizado o codigo
de carateres UTF-8 independentemente do ambiente em que o TeXShop e cha-
mado:
cat Library/TeXShop/Engines/Sweave.engine
#!/bin/bash
export LANG=en_US.UTF-8
export PATH=$PATH:/usr/texbin:/usr/local/bin
/usr/bin/R CMD Sweave "$1"
pdflatex "${1%.*}"
Que foi a parte mais difcil de encontrar na internet.
3 Exemplo 1
O exemplo mais facil que verica que esta tudo a correr como se quer, e:
> plot(1:100)
> title("R em linha com LaTeX", "Exemplo 1 - Uns pontos")
2
2 4 6 8 10
2
4
6
8
1
0
Index
1
:
1
0
R em linha com LaTeX
Exemplo 1 Uns pontos
4 Exemplo 2
Mais interessante para um engenheiro qumico sera a utiliza cao de odesolve
do R para integrar um mecanismo reaccional e representar o resultado. O
mecanismo e:
A
k
1

k
1
B
k
2
C
Se o sistema a estudar for fechado, i.e.

dA
dt
= r
A
= k
1
Ak
2
B
dB
dt
= r
B
= k
1
A(k
2
+ k
3
) B
A integracao deste sistema pode ser realizada pelo R utilizando a livraria ode-
solve inline com o L
A
T
E
X.
Por exemplo para k
1
= 0, 04 k
2
= 0, 02 e k
3
= 0, 04 com as condicoes
iniciais A = 1, B = 0 eC = 0 e integrando entre t = 0..100 com a representa cao
de pontos de 5 em 5 minutos, pode ser obtida pelo seguinte chunk:
> parms <- c(k1=0.04, k2=0.02, k3=0.04)
> my.atol <- c(1e-6, 1e-10, 1e-6)
3
> times <- seq(0,100,5)
> ODE <- function(t, y, p)
+ {
+ dA <- -p["k1"] * y[1] + p["k2"] * y[2]
+ dB <- p["k1"] * y[1]-p["k2"]*y[2]-p["k3"]*y[2]
+ dC<- p["k3"]*y[2]
+ list(c(dA,dB,dC),c(B.massa=sum(y)))
+ }
> require(odesolve)
> ## Quanto tempo leva a integrac~ao?
> system.time(
+ out <- lsoda(c(1,0,0),times,ODE, parms, rtol=1e-7, atol= my.atol)
+ )
user system elapsed
0.003 0.000 0.003
> ## Os resultados s~ao:
> out
time 1 2 3 B.massa
[1,] 0 1.00000000 0.00000000 0.00000000 1
[2,] 5 0.82666496 0.15634492 0.01699012 1
[3,] 10 0.69559682 0.24626786 0.05813532 1
[4,] 15 0.59427689 0.29308267 0.11264044 1
[5,] 20 0.51417887 0.31228235 0.17353878 1
[6,] 25 0.44946554 0.31413025 0.23640422 1
[7,] 30 0.39611374 0.30539578 0.29849047 1
[8,] 35 0.35132689 0.29051682 0.35815629 1
[9,] 40 0.31314005 0.27237783 0.41448212 1
[10,] 45 0.28015435 0.25283062 0.46701503 1
[11,] 50 0.25135818 0.23304253 0.51559929 1
[12,] 55 0.22600650 0.21372916 0.56026434 1
[13,] 60 0.20353939 0.19530964 0.60115097 1
[14,] 65 0.18352672 0.17801015 0.63846313 1
[15,] 70 0.16563060 0.16193273 0.67243667 1
[16,] 75 0.14957969 0.14710094 0.70331937 1
[17,] 80 0.13515153 0.13348997 0.73135849 1
[18,] 85 0.12216027 0.12104650 0.75679323 1
[19,] 90 0.11044812 0.10970154 0.77985034 1
[20,] 95 0.09987923 0.09937878 0.80074199 1
[21,] 100 0.09033534 0.08999988 0.81966478 1
attr(,"istate")
[1] 2
> # Vamos fazer o grafico
> # entre t=0 e 100 e entre 0 e Ao
> xrange <- c(0,100)
> yrange <- c(0,1)
> # O grafico
> plot(xrange, yrange, type="n", xlab="t (min)", ylab="[ i ] (mol/L)" )
> colors <- rainbow(3)
4
> linetype <- c(1:3)
> plotchar <- c(1:3)
> espe<-c("A","B","C")
> # vamos por ainda umas linhas
> for (i in 1:3) {
+ lines(out[,1], out[,i+1], type="b", lwd=1.5,
+ lty=linetype[i], col=colors[i], pch=plotchar[i])
+ }
> # adicionamos um ttulo e um subttulo
> title("Reactor descontnuo", "Exemplo 2 - ODE's em R")
> # e uma legenda
> legend(10, yrange[2], espe, cex=0.8, col=colors,
+ pch=plotchar, lty=linetype, title="Especie")
0 20 40 60 80 100
0
.
0
0
.
2
0
.
4
0
.
6
0
.
8
1
.
0
t (min)
[

i

]

(
m
o
l
/
L
)
Reactor descontnuo
Exemplo 2 ODE's em R
Espcie
A
B
C
5 Anexo
Se quiser experimentar a reproduzir este documento precisa do seguinte pream-
bulo:
\documentclass[a4paper]{article}
\usepackage[portuguese]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[fleqn,tbtags]{mathtools} %xrightleftharpoon
\usepackage[parfill]{parskip} %noident
5
\usepackage{Sweave}
6 Bibliograa
Hornik (2012), The R FAQ, ISBN 3-900051-08-9
Friedrich Leisch. Sweave: Dynamic generation of statistical reports using li-
terate data analysis. In Wolfgang Hardle and Bernd Ronz, editors, Compstat
2002 - Proceedings in Computational Statistics, pages 575-580. Physica Verlag,
Heidelberg, 2002. ISBN 3-7908-1517-9.
6

You might also like