2011-01-19 7 views
11

Khi viết một gói trong R, bạn có thể tạo các trang trợ giúp ở định dạng Rd và sau đó chuyển đổi chúng thành các trang HTML. Nếu trang trợ giúp bao gồm mã ví dụ, nó sẽ được in trong Phần "Ví dụ".Số liệu (kết quả thực thi mã R) trong các trang trợ giúp HTML cho gói R

Ví dụ, có hai trang cho chức năng "prcomp" của gói "số liệu thống kê":

  1. Chỉ mã ví dụ: http://stat.ethz.ch/R-manual/R-patched/library/stats/html/prcomp.html
  2. Ví dụ Mã + Kết quả với con số: http://rgm2.lab.nig.ac.jp/RGM2/R_man-2.9.0/library/stats/man/prcomp.html

Câu hỏi đặt ra là cách tạo kết quả thực thi mã R và đặc biệt bao gồm các số liệu đầu ra? Điều đó tương ứng với Phần "Kết quả".

tôi sử dụng lệnh sau để chuyển đổi Rd sang HTML:

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

Đó gọi hàm R http://stat.ethz.ch/R-manual/R-devel/library/tools/html/Rd2HTML.html.

Tôi sẽ đánh giá cao bất kỳ nhận xét hoặc đề xuất nào. Cảm ơn.

+0

Xem tại đây: [hình ảnh nhúng trong tài liệu Rd] (http://romainfrancois.blog.free.fr/index.php?post/2010/04/03/embed-images-in-Rd-documents) – rcs

Trả lời

8

Bạn có thể muốn xem gói helpr cung cấp giao diện người dùng web cho tài liệu, cũng như nhiều cải tiến khác, hiển thị kết quả ví dụ trong dòng.

+0

+ 1 helpr đang tìm kiếm * đẹp * kể từ lần cuối cùng tôi kiểm tra nó ra! Các nhận xét disqus có được chia sẻ trên toàn cầu không? – Sharpie

+1

Có - ý tưởng là có ý kiến ​​toàn cầu về tài liệu địa phương của bạn. – hadley

4

Cảm ơn @rcs và @hadley vì nhận xét của bạn.

Thực tế, cả hai giải pháp được đề xuất dường như không phù hợp với nhu cầu của tôi. Nhúng hình ảnh ở định dạng Rd không phải là trường hợp, khi tôi sử dụng chuyển đổi Roxygen> Rd. Các gói 'helpr' là thực sự ấn tượng, nhưng tôi nghĩ rằng nó phù hợp hơn để xây dựng một cơ sở kiến ​​thức của tất cả các gói bạn đã cài đặt trong máy tính của bạn. Tôi cần một cái gì đó cơ bản hơn với sự linh hoạt để tự mình làm thay đổi với tư cách là một nhà phát triển gói.

Cuối cùng, tôi nhận được những gì tôi mong đợi, fitSpline.html. Điều đó khá giống với trang tham chiếu tôi đặt trong câu hỏi, prcomp.html.

Tôi thấy rằng không có cách nào để áp dụng gói 'công cụ' để có hình ảnh trong tài liệu HTML, ít nhất là bây giờ. Vì vậy, tôi đã viết một kịch bản bash mà mất một tập tin Rd trên đầu vào, chiết xuất phần '\ ví dụ' và có được đầu ra html/hình ảnh bằng cách chạy Sweave. Sau đó, phần html của phần 'Kết quả' được hợp nhất với trang html thu được bằng lệnh 'R CMD Rdconv -t html'.

Điều đó dường như có nhiều mã, nhưng tôi chỉ muốn chia sẻ giải pháp của mình với những người cũng viết các gói R.

Trân trọng, 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

Tôi nghĩ để cho bạn biết rằng có một giải pháp mới sắp ra trong R 2.14 (see here):

Rd đánh dấu có một thẻ \ hình mới để các số liệu đó có thể được bao gồm trong các trang trợ giúp khi được chuyển đổi sang HTML hoặc LaTeX. Có các ví dụ trên trang trợ giúp cho mệnh đề() và điểm().

Hadley, thư viện trợ giúp của bạn thật tuyệt vời, tôi rất muốn dùng thử khi bạn đặt phiên bản mới hơn trên CRAN.

+0

Cảm ơn bạn đã bình luận, Tal! Bạn nói đúng, máy nhắn tin trợ giúp cho mệnh đề() bao gồm một ví dụ về cách sử dụng thẻ \ figure. Nhưng ý tưởng ban đầu của tôi về chủ đề này là yêu cầu một công cụ tạo số liệu trong phần Ví dụ, ví dụ như http://rgm2.lab.nig.ac.jp/RGM2/func.php?rd_id=mixtools:ellipse này – variani