Dove posizionare il codice R per il flusso di lavoro R + Sweave + LaTeX

2

Ho trascorso l'ultima settimana a imparare 3 nuovi strumenti: R, Sweave e LaTeX. Una domanda che mi è venuta in mente quando ho lavorato al mio primo progetto: dove inserisco la maggior parte del codice R?

Le esercitazioni che ho letto online hanno inserito la maggior parte del codice R nel file LaTeX .Rnw. Tuttavia, trovo di avere un sacco di calcoli R nel file LaTeX che distrae. Quello che trovo estremamente utile (ovviamente) è chiamare il codice R nel file LaTeX e incorporare il risultato.

Quindi il flusso di lavoro che ho utilizzato è quello di posizionare il 99% del mio codice R nel mio file .R. Eseguo per primo quel file, salvo un mucchio di calcoli come oggetti, e restituisco il file .Rout una volta finito (per salvare il lavoro). Quindi, quando eseguo Sweave, carico il file .Rout , così ho già completato la maggior parte dei miei calcoli e nella sessione Sweave R.

Quindi i miei callout LaTeX su R sono piuttosto semplici: dammi semplicemente l'XTable memorizzato in 'res.table', o forniscimi il risultato di un calcolo già calcolato memorizzato nella variabile 'res'.

Quindi spingo verso la quantità minima di codice R nel file LaTex possibile, per ottenere il risultato desiderato (incorporando i risultati delle statistiche nell'invio di LaTeX).

Qualcuno ha qualche esperienza con questo approccio? Sono solo preoccupato che potrei incorrere in problemi più avanti, quando comincio davvero a caricare e sfruttare questo flusso di lavoro.

    
posta Clayton Stanley 22.09.2012 - 03:16
fonte

2 risposte

2

Ho la stessa ossessione di mantenere il codice, ma io uso knitr , che si basa su Sweave. Potrebbe risolvere il tuo problema se il problema è di evitare il file .Rout .

    
risposta data 25.09.2012 - 04:46
fonte
0

Per mantenere il codice fuori dal mio .Rmd ho iniziato a scrivere un pacchetto con tutte le funzioni al suo interno.

Questo potrebbe essere con un intento leggermente diverso dal tuo flusso di lavoro, ma il mio progetto è abbastanza ripetitivo da poter generalizzare il codice in funzioni, con l'obiettivo del progetto di utilizzarlo come una sorta di super-unione per generare un documento per set di dati da un ampio repository.

Questo soddisfa i criteri di rimozione dei blocchi di codice R chunky che si desidera nascondere, anche se non fa molto per ridurre il tempo di elaborazione.

Un'alternativa che ho visto in giro suggerisce di usare source() , anche se, a mio avviso limitato, sarebbe sufficiente rispecchiare il tuo processo attuale.

    
risposta data 11.08.2015 - 15:51
fonte

Leggi altre domande sui tag