11

Rでパッケージを作成する場合、ヘルプページをRd形式で作成し、それらをHTMLページに変換できます。ヘルプページにサンプルコードが含まれている場合は、「例」のセクションに印刷されています。

たとえば、パッケージ「stats」の関数「prcomp」には2つのページがあります。

  1. サンプルコードのみ:http ://stat.ethz.ch/R-manual/R-patched/library/stats/html/prcomp.html
  2. コード例+図付きの結果:http: //rgm2.lab.nig.ac.jp/RGM2/R_man-2.9.0/library/stats/man/prcomp.html

問題は、Rコードの実行結果をどのように生成するか、特に出力値を含めるかどうかです。これは「結果」のセクションに対応します。

次のコマンドを使用して、RdをHTMLに変換します。

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

これにより、R関数http://stat.ethz.ch/R-manual/R-devel/library/tools/html/Rd2HTML.htmlが呼び出されます。

コメントや提案をいただければ幸いです。ありがとう。

4

3 に答える 3

8

helprドキュメントへの Web フロント エンドを提供するパッケージや、その他の多くの改善点を提供するパッケージをチェックアウトして、例の結果をインラインで表示することをお勧めします。

于 2011-01-20T04:33:19.433 に答える
4

@rcs と @hadley のコメントに感謝します。

実際、提案されたソリューションはどちらも私のニーズに合わないようです。トランジションRoxygen>Rdを使用するため、Rd形式での画像の埋め込みは当てはまりません。パッケージ 'helpr' は本当に印象的ですが、コンピューターにインストールしたすべてのパッケージのナレッジ ベースを構築するのにより適していると思います。パッケージ開発者として自分で変更できるように、柔軟性を備えた、より基本的なものが必要でした。

最後に、予想通りのfitSpline.htmlを取得しました。これは、私が質問に入れた参照ページprcomp.htmlと非常によく似ています。

少なくとも今のところ、HTML ドキュメントに画像を含めるためにパッケージ「tools」を採用する方法がないことがわかりました。したがって、入力で Rd ファイルを受け取り、セクション '\examples' を抽出し、Sweave を実行して html/image 出力を取得する bash スクリプトを作成しました。その後、「結果」セクションの html 部分は、コマンド「R CMD Rdconv -t html」によって取得された html ページとマージされます。

これは大量のコードのように思えますが、私のソリューションを、R パッケージも作成している人々と共有したいだけです。

よろしく、 アンドレイ

#!/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
于 2011-02-01T01:23:06.080 に答える
1

R 2.14 で新しいソリューションが登場することをお知らせします(こちらを参照)

Rd マークアップに新しい \figure タグが追加され、HTML または LaTeX に変換されたときにヘルプ ページに図を含めることができるようになりました。par() と points() のヘルプ ページに例があります。

Hadley さん、あなたのヘルパー ライブラリは素晴らしいですね。CRAN に新しいバージョンを追加したら、ぜひ試してみたいと思います。

于 2011-09-23T11:25:49.367 に答える