R und LyX

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.

  1. Man installiere, wenn noch nicht geschehen, die Pakete utils und für die „schönere“ Darstellung von Tabellen xtable.

  2. Man installiere LyX [1] komplett mit TeX-Distribution (z. B. MiKTeX, TeXLive).

  3. 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].

  4. 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“.
  5. 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
  6. 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
  7. 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.

  8. 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].

  9. Um R-Code innerhalb von normalen LaTeX-Text zu schreiben, benutzt man \Sexpr{}.

  10. Nun muss man nur noch auf „PDF (pdflatex) ansehen“ gehen. Wenn alles klappt, sieht man dann die fertige PDF mit dem kompilierten R-Code.

  11. Wenn man xtable benutzen möchte darf man davor require() nicht vergessen.

    Beispiel:
    <<results=tex>>=
    require(xtable)
    x<-1:5
    y<-8:4
    xtable(table(x,y))
    xtable(summary(lm(x~y)))
    @
  12. 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.


zurück


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