Salta al contenuto principale

AlmAck

Welcome

  • Login

Menu principale

  • Home
  • Forum
  • Progetti/Wiki

Form di ricerca

Navigazione

  • Contenuti recenti
  • Forum
  • Gallery
  • Progetti/Wiki
  • Archivi
  • Download

Usare Latex e il linguaggio R contemporaneamente

Inviato da AlmAck il Mar, 10/04/2007 - 22:14

Con il presente articolo voglio illustrare brevemente come creare un sorgente ibrido scritto in latex e con delle analisi statistiche incluse con il linguaggio R.
Prima di tutto dobbiamo avere installato sia tetex (latex) e il programma R. Esistono entrambi sia per Linux che per windows.

Il pacchetto Sweave:
Sweave é un pacchetto di R sviluppato da Friedrich Leisch che permette di
generare automaticamente report statistici. Nelle ultime versioni
di R questo pacchetto é già incluso nel programma di base e non necessita di alcuna installazione.

L'obiettivo di Sweave é quello ti leggere un file ibrido e di estrapolare solo i comandi R per poi procedere alla sostituzine in codice latex.

I chunks di tipo SweaveSyntaxLatex
Le ultime versioni di Sweave sono in grado di interpretare anche dei chunks
definiti in un linguaggio più familiare agli utenti LaTeX.
es generale:

\begin{Scode}{, }
...
\end{Scode}

L’ambiente \begin{Scode} permette l’uso di numerose opzioni, le principali
sono:

  • label essa permetta di richiamare il risultato prodotto dal chunk anche in altre
    parti del documento
  • echo=FALSE permette di disabilitare la scrittura del codice computato da R sul
    documento LaTeX (default =TRUE);
  • fig=TRUE impone la generazione di una figura in formato .eps e .pdf. Tali
    file sono creati all'interno della cartella corrente e saranno poi richiamati
    durante la successiva fase di compilazione con LaTeX (default =FALSE);
  • results=tex impone che l'output sia prodotto nel font usato nel documento e
    non con font verbatim come di default.
  • results=hide nasconde qualsiasi risultato prodotto all'interno del chunk.
  • Inoltre sono anche a disposizione i comandi \Sexpr{}, che per-
    mette di eseguire una singola istruzione R ottenendo l’output nello stesso font
    del documento, ed il comando \SweaveOpts{, } che
    modifica le opzioni di default dalla sua occorrenza fino alla fine del documento.

    Come creare un file:
    Per prima cosa bisogna creare un nuovo file con estensione .Rtex o .Stex
    Scrivere il codice nel file e poi compilare con R.
    Se la procedura é andata a buon fine si può passare alla compilazione usando latex.

    Vediamo i dettagli.
    programma di esempio:
    \documentclass[a4paper,34pt]{report}
    \usepackage[italian]{babel}
    \usepackage[latin1]{inputenc}
    \usepackage{fancyhdr}
    \begin{document}
    \section*{Un esempio dell’uso di Sweave}
    \begin{Scode}{echo=FALSE}
    library(lattice)
    library(xtable)
    data(cats, package="MASS")
    \end{Scode}
    Consideriamo un esempio di regressione tratto da Venables \& Ripley
    (1996). Il dataframe contiene misure della massa cardiaca e corporea
    di \Sexpr{nrow(cats)} gatti, di cui \Sexpr{sum(cats$Sex=="F")} sesso
    femminile e \Sexpr{sum(cats$Sex=="M")} di sesso maschile.
    Un modello di regressione lineare del massa cardiaca e del sesso
    può essere ricavato utilizzando i comandi:
    \begin{Scode}
    lm1 <- lm(Hwt~Bwt*Sex, data=cats)
    lm1
    \end{Scode}
    I risultati di un test per la significatività dei coefficienti è rappresentato in tabella~\ref{tab:coeff} ed uno scatterplot con le rette di regressione è mostrato in figura~\ref{fig:cats}.
    \SweaveOpts{echo=false}
    \begin{Scode}{results=tex}
    xtable(lm1,
    caption="Significatività dei parametri di regressione",
    label="tab:coeff")
    \end{Scode}
    \begin{figure}[ht]\centering
    \begin{Scode}{fig=TRUE, width=12, height=6}
    trellis.par.set(col.whitebg())
    print(xyplot(Hwt~Bwt|Sex, data=cats, type=c("p","r")))
    \end{Scode}
    \caption{Le due rette di regressione}
    \label{fig:cats}
    \end{figure}
    \end{document}

    Per compilare il file basta lanciare il seguente comando in R:

    > Sweave("<path>/esempio.Rtex")

    il file generato é di tipo .tex

    adesso si può dare in pasto il file .tex a latex che genererà il nostro documento completo Wink

    Trovate maggiori info qui

    Tags: 
    LaTeX
    R
    »
    • Blog di AlmAck
    • Aggiungi un commento

    Commenti recenti

    • Salve, 13 anni 2 mesi fa
    • L'assenza di risposte a 13 anni 5 mesi fa
    • scusate la mia ignoranza, ma 13 anni 10 mesi fa
    • OK grazie 13 anni 11 mesi fa
    • La tua richiesta dipende da 14 anni 5 giorni fa
    • Ciao Carlo, sinceramente no 14 anni 5 mesi fa
    • Salve, sono nuovo di questo 14 anni 6 mesi fa
    • Ciao Pedro, come prima cosa 14 anni 8 mesi fa
    • Ho seguito le istruzioni per 14 anni 8 mesi fa
    • Grazie yuri per averlo 14 anni 9 mesi fa

    Articoli recenti del blog

    • Xorg Freeze con FlashPlugin in ubuntu e nVidia
    • Nokia N9 update a PR1.1 - guida
    • Nokia N9 - Tips and tricks
    • Nokia N9 - Swisscom configurazione internet
    • Nokia N9
    • Fritz!Box importare contatti da Gmail con g2fbook
    • Digikam 2.0.0 - problemi con MySQL
    • Anteprime file RAW in dolphin (ORF, CR2, ecc...)
    • Swisscom/Bluewin - Fritz!Box e Fritz!Fon
    • Kubuntu 11.04 | Natty
    Altro

    Argomenti del forum attivi

    • carta sim Nokia n9
    • Siti con immagini stupefacenti...
    • Drupal modulo archive
    • Errore in CB e integrazione con PHPbb3
    • Script php per modifcare permessi chmod
    Altro

    Menu principale

    • Home
    • Forum
    • Progetti/Wiki

    Copyright © AlmAck

    AlmAck