Man kann LyX und R kombinieren mit Hilfe der R-Funktion Sweave()
aus dem Paket utils
von Friedrich Leisch und so LyX-Dokumente mit R-Code erzeugen.
-
Man installiere, wenn noch nicht geschehen, die Pakete
utils
und für die „schönere“ Darstellung von Tabellenxtable
. -
Man installiere LyX [1] komplett mit TeX-Distribution (z. B. MiKTeX, TeXLive).
Nun überschreibt man die Dateien: literate-scrap.inc, literate-article.layout, literate-report.layout und literate-book.layout aus dem LyX-Unterverzeichnis „layouts“ mit den gleichnamigen Dateien von [2].
- Man suche im Verzeichnis .../R-x.x.x/share/texmf die Datei Sweave.sty und kopiere sie in das TeX-Unterverzeichnis „texmf“. In das gleiche Verzeichnis kommt die Datei noweb.sty [3]. Damit LyX die neuen Dateien erkennt geht man im LyX-Menü auf „Reconfigure“.
-
Nun muss man unter „Einstellungen->Dateiformate“ folgende Formate ergänzen.
Format (Einsortiert als): GUI-Name (Format): Dateiendung: literate Sweave Rnw r R/S code R pdflatex LaTeX (pdflatex) tex latex LaTeX (plain) tex -
Unter „Einstellungen->Konverter“ ergänzt man anschließend folgende Konverter.
Von Format: Nach Format: Konverter: Sweave LaTeX (pdflatex) R CMD Sweave $$i Sweave LaTeX (plain) R CMD Sweave $$i Sweave R/S code R CMD Stangle $$i Um ein LyX-Dokument mit R-Code zu erzeugen, erstellt man eine neues Dokument und wählt unter „Dokument->Einstellungen->Dokumentklasse“ artikel (Sweave noweb), report (Sweave noweb) oder book (Sweave noweb) aus.
-
Den R-Code schreibt man in eine TeX-Code-Box. Vor den R-Code in die Box kommt <<Optionen>>= und dahinter ein @. Zwischen diesen Marken darf nur R-Code stehen. Man kann folgende Optionen durch Kommata getrennt angeben, man kann sie aber auch weglassen.
echo=false
R-Code ist nicht sichtbar results=tex
die Ergebnisse werden wie TeX-Code behandelt results=hide
die Ergebnisse sind nicht sichtbar fig=true
Grafiken werden eingebunden width=
Breite der Grafik in Inch (z. B. 4) height=
Höhe der Grafik in Inch Weitere Optionen kann man in der R-Hilfe nachlesen [7].
Um R-Code innerhalb von normalen LaTeX-Text zu schreiben, benutzt man
\Sexpr{}
.Nun muss man nur noch auf „PDF (pdflatex) ansehen“ gehen. Wenn alles klappt, sieht man dann die fertige PDF mit dem kompilierten R-Code.
Wenn man
Beispiel:xtable
benutzen möchte darf man davorrequire()
nicht vergessen.<<results=tex>>=
require(xtable)
x<-1:5
y<-8:4
xtable(table(x,y))
xtable(summary(lm(x~y)))
@Der R-Code sollte möglichst richtig sein, da die Fehlermeldungen nicht die Fehlerstelle angeben. Im R-Code sollten keine Lücken sein und jeder Befehl sollte in einer neuen Zeile beginnen.
Quellen: | |
[1] | LyX, Download http://www.lyx.org/Download Zugriff: 14.6.2009 |
[2] | R project, literate-article.layout, Anleitung http://cran.r-project.org/contrib/extra/lyx/ Zugriff: 14.6.2009 |
[3] | noweb.sty, Download http://www.ctan.org/tex-archive/web/noweb/ Zugriff: 14.6.2009 |
[4] | Using Sweave with LyX, Gregor Gorjanc, The Newsletter of the R Project, Vol. 8/1,May 2008 http://www.r-project.org/doc/Rnews/Rnews_2008-1.pdf Zugriff: 14.6.2009 |
[5] | How to use LyX together with R, Paul E. Johnson, Gregor Gorjanc, Installation http://wiki.lyx.org/LyX/LyxWithRThroughSweave Zugriff: 14.6.2009 |
[6] | Blog von Gregor Gorjanc http://ggorjan.blogspot.com/search/label/LyX-Sweave Zugriff: 14.6.2009 |
[7] | R Documentation, R/LaTeX Driver for Sweave, Friedrich Leisch, Optionen R: help(RweaveLatex) bzw. ?RweaveLatex Zugriff: 14.6.2009 |
9.8.2009