问题 R包的HTML帮助页面中的数字(R代码执行结果)


在R中编写包时,可以以Rd格式创建帮助页面,然后将它们转换为HTML页面。如果帮助页面包含示例代码,则会在“示例”部分中打印。

例如,包“stats”的函数“prcomp”有两个页面:

  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

我将不胜感激任何意见或建议。 谢谢。


1517
2018-01-19 17:22


起源

看这里: 在Rd文档中嵌入图像 - rcs


答案:


你可能想看看 helpr 包提供文档的Web前端,以及许多其他改进,显示示例的结果。


8
2018-01-20 04:33



+1帮助者正在寻找 不错 自从我上次检查出来以来! Disqus评论是否在全球范围内共享? - Sharpie
是的 - 我们的想法是对您的本地文档进行全局评论。 - hadley


感谢@rcs和@hadley的意见。

实际上,两种提议的解决方案似乎都不符合我的需求。以Rd格式嵌入图像并非如此,因为我使用转换Roxygen> Rd。软件包'helpr'确实令人印象深刻,但我认为它更适合构建计算机中安装的所有软件包的知识库。作为一个包开发人员,我需要一些更基本的灵活性来自行更改。

最后,我得到了我的预期, fitSpline.html。这与我在问题中提到的参考页面非常相似, prcomp.html

我发现没有办法采用包“工具”在HTML文档中包含图像,至少目前是这样。因此,我编写了一个bash脚本,在输入中获取Rd文件,提取“\ examples”部分并通过运行Sweave获取html / image输出。之后,'Results'部分的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

4
2018-02-01 01:23





我想让你知道R 2.14中有一个新的解决方案 (看这里)

Rd标记有一个新的\ figure标记,因此可以包含数字   转换为HTML或LaTeX时的帮助页面。有一些例子   par()和points()的帮助页面。

Hadley,你的帮助程序库听起来很棒,我很乐意尝试将它的新版本放在CRAN上。


1
2017-09-23 11:25



感谢评论,Tal!你是对的,par()的帮助寻呼机包含一个使用\ figure标签的例子。但是我对这个主题的初步想法是要求在示例部分中使用工具来制作数字,例如,像这样 rgm2.lab.nig.ac.jp/RGM2/func.php?rd_id=mixtools:ellipse - variani