2011-01-19 27 views
11

Quando si scrive un pacchetto in R, è possibile creare le pagine della Guida in formato Rd e quindi convertirle in pagine HTML. Se la pagina di aiuto include il codice di esempio, viene stampata nella sezione "Esempi".Figure (risultati di esecuzione del codice R) nelle pagine della guida HTML per un pacchetto R

Per esempio, ci sono due pagine per la funzione "prcomp" del pacchetto "statistiche":

  1. Solo codice esempio: http://stat.ethz.ch/R-manual/R-patched/library/stats/html/prcomp.html
  2. esempio di codice + Risultati con figure: http://rgm2.lab.nig.ac.jp/RGM2/R_man-2.9.0/library/stats/man/prcomp.html

La domanda è come generare i risultati dell'esecuzione del codice R e in particolare includere i dati di output? Ciò corrisponde alla sezione "Risultati".

Io uso il seguente comando per convertire Rd in HTML:

R CMD Rdconv -t html $rdfile > $rdname.html 

che chiama la funzione R http://stat.ethz.ch/R-manual/R-devel/library/tools/html/Rd2HTML.html.

Apprezzerò qualsiasi commento o suggerimento. Grazie.

+0

Vedere qui: [incorporare le immagini nei documenti Rd] (http://romainfrancois.blog.free.fr/index.php?post/2010/04/03/embed-images-in-Rd-documents) – rcs

risposta

8

Si potrebbe voler controllare il pacchetto helpr che fornisce un front-end Web alla documentazione che, oltre a molti altri miglioramenti, visualizza i risultati degli esempi in linea.

+0

+ 1 helpr sta cercando * carino * dall'ultima volta che l'ho controllato! I commenti sono condivisi a livello globale? – Sharpie

+1

Sì: l'idea è di avere commenti globali sulla documentazione locale. – hadley

4

Grazie a @rcs e @hadley per i commenti.

In realtà, entrambe le soluzioni proposte non sembrano adattarsi alle mie esigenze. L'incorporamento di immagini in formato Rd non è il caso, poiché utilizzo la transizione Roxygen> Rd. Il pacchetto 'helpr' è davvero impressionante, ma penso che sia più adatto per creare una base di conoscenza di tutti i pacchetti che hai installato sul tuo computer. Avevo bisogno di qualcosa di più basilare con flessibilità per fare cambiamenti da solo come sviluppatore di pacchetti.

Infine, ho ottenuto quello che mi aspettavo, fitSpline.html. È abbastanza simile alla pagina di riferimento che ho inserito nella domanda, prcomp.html.

Ho scoperto che non è possibile adottare il pacchetto "strumenti" per avere immagini nella documentazione HTML, almeno per ora. Così, ho scritto uno script bash che prende un file Rd sull'input, estrae la sezione '\ examples' e ottiene l'output html/image eseguendo Sweave. Successivamente, la parte html della sezione 'Risultati' viene unita alla pagina html ottenuta dal comando 'R CMD Rdconv -t html'.

Questo sembra essere un sacco di codice, ma voglio solo condividere la mia soluzione con chi scrive anche pacchetti R.

Con i migliori saluti, Andrey

#!/bin/bash 

rdfile="fitSpline.Rd" 
rdname=$(echo "$rdfile" | cut -d'.' -f1) 

rfile=$rdname.R 
sed -n '/\examples{/,/}/p' $rdfile > $rfile # text between two patterns 
sed -i 's/\\examples{//' $rfile # remove pattern '\examples{' 
sed -i 's/}$//' $rfile # remove the character '}' 

rnwfile=$rdname.Rnw 
cp $rfile $rnwfile 
sed -i '1 i png("Rplot%03d.png")' $rnwfile 
sed -i '1 i <<example, echo=true, results=tex>>=' $rnwfile 
sed -i '$ a dev.off()' $rnwfile 
sed -i '$ a @' $rnwfile 

texfile=$rdname.tex 
R CMD Sweave $rnwfile 
sed -i 's/\\begin{Schunk}//' $texfile 
sed -i 's/\\begin{Sinput}//' $texfile 
sed -i 's/\\end{Schunk}//' $texfile 
sed -i 's/\\end{Sinput}//' $texfile 
sed -i '/^$/d' $texfile # remove empty lines 

reshtmlfile=$rdname.results.html 
echo "<h3>Results</h3>" > $reshtmlfile 
echo "<pre>" >> $reshtmlfile 
cat $texfile >> $reshtmlfile 
echo "</pre>" >> $reshtmlfile 

for fig in $(ls *.png) ; do 
    echo "<br><a href=\"$fig\"><img src=\"$fig\"></a>" >> $reshtmlfile 
done 

htmlfile=$rdname.html 
R CMD Rdconv -t html $rdfile > $htmlfile 

sed -i 's/<\/body>//' $htmlfile 
sed -i 's/<\/html>//' $htmlfile 
cat $reshtmlfile >> $htmlfile 
echo "</body>" >> $htmlfile 
echo "</html>" >> $htmlfile 
1

ho pensato di farvi sapere che c'è una nuova soluzione che esce in R 2.14 (see here):

Rd markup ha un nuovo tag \ figura così tali cifre possono essere incluse nelle pagine della guida di quando vengono convertite in HTML o LaTeX. Ci sono esempi sulle pagine di aiuto per par() e points().

Hadley, la tua libreria helpr suona alla grande, mi piacerebbe provarlo una volta che ne hai messo una versione più recente su CRAN.

+0

Grazie per il commento, Tal! Hai ragione, l'help cercapersone per par() include un esempio di utilizzo del tag \ figure. Ma la mia idea iniziale di questo thread era di chiedere uno strumento per creare figure nella sezione Example, ad esempio, come questo http://rgm2.lab.nig.ac.jp/RGM2/func.php?rd_id=mixtools:ellipse – variani

Problemi correlati