R包的HTML帮助页中的图(R代码执行结果)

R包的HTML帮助页中的图(R代码执行结果),r,package,roxygen,R,Package,Roxygen,在R中编写包时,可以创建Rd格式的帮助页面,然后将其转换为HTML页面。如果帮助页面包含示例代码,则在“示例”部分打印 例如,包“stats”的函数“prcomp”有两个页面: 唯一示例代码: 示例代码+带数字的结果: 问题是如何生成R代码执行的结果,尤其是包括输出数字?这与“结果”一节相对应 我使用以下命令将Rd转换为HTML: R CMD Rdconv -t html $rdfile > $rdname.html 这就调用了R函数 如有任何意见或建议,我将不胜感激。 谢谢。您可能想

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

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

  • 唯一示例代码:
  • 示例代码+带数字的结果:
  • 问题是如何生成R代码执行的结果,尤其是包括输出数字?这与“结果”一节相对应

    我使用以下命令将Rd转换为HTML:

    R CMD Rdconv -t html $rdfile > $rdname.html
    
    这就调用了R函数

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

    您可能想查看
    帮助程序
    软件包,该软件包为文档提供了一个web前端,该文档以及许多其他改进都会在一行中显示示例的结果。

    感谢@rcs和@hadley的评论

    事实上,两个提议的解决方案似乎都不适合我的需要。在Rd格式中嵌入图像并非如此,因为我使用transition Roxygen>Rd。软件包“helpr”确实令人印象深刻,但我认为它更适合于构建您在计算机中安装的所有软件包的知识库。作为一名软件包开发人员,我需要一些更基本、更灵活的东西来自己进行更改

    最后,我得到了我所期望的。这与我在问题中提到的参考页非常相似

    我发现没有办法采用“工具”包在HTML文档中包含图像,至少目前是这样。因此,我编写了一个bash脚本,它在输入端获取一个Rd文件,提取“\examples”部分,并通过运行swave获得html/image输出。之后,“Results”部分的html部分与通过命令“rcmd Rdconv-t html”获得的html页面合并

    这似乎需要很多代码,但我只想与那些同样编写R包的人分享我的解决方案

    致以最良好的祝愿, 安德烈

    #/bin/bash
    rdfile=“fitSpline.Rd”
    rName=$(回显“$rdfile”|剪切-d'.-f1)
    rfile=$rdname.R
    sed-n'/\examples{/,/}/p'$rdfile>$rfile#两个模式之间的文本
    sed-i的/\\examples{/'$rfile#remove pattern'\examples{'
    sed-i的/}$/'$rfile#删除字符'}'
    rnwfile=$rdname.Rnw
    cp$rfile$rnwfile
    sed-i'1 i png(“Rplot%03d.png”)'$rnwfile
    sed-i'1i='$rnwfile
    sed-i'$a dev.off()'$rnwfile
    sed-i'$a@'$rnwfile
    texfile=$rdname.tex
    R CMD swave$rnwfile
    sed-i的/\\begin{Schunk}/'$texfile
    sed-i的/\\begin{Sinput}/'$texfile
    sed-i的/\\end{Schunk}/'$texfile
    sed-i的/\\end{Sinput}/'$texfile
    sed-i'/^$/d'$texfile#删除空行
    reshtmlfile=$rdname.results.html
    回显“结果”>$reshtmlfile
    echo”“>>$reshtmlfile
    cat$texfile>>$reshtmlfile
    echo”“>>$reshtmlfile
    对于fig,单位为美元(ls*.png);做
    echo“
    ”>>$reshtmlfile 完成 htmlfile=$rdname.html R CMD Rdconv-t html$rdfile>$htmlfile sed-i的//'$htmlfile sed-i的//'$htmlfile cat$reshtmlfile>>$htmlfile echo”“>>$htmlfile echo”“>>$htmlfile
    我想让您知道,R2.14中出现了一个新的解决方案:

    Rd标记有一个新的\figure标记,以便可以将图形包括在 转换为HTML或LaTeX时的帮助页。上面有一些例子 par()和points()的帮助页


    Hadley,你的helpr库听起来很棒,一旦你在CRAN上安装了一个更新的版本,我很乐意尝试一下

    +1 helpr看起来很不错,因为我上次查看它!论文评论是否在全球范围内共享?是的-想法是对您的本地文档进行全球评论。请参见此处:感谢您的评论,塔尔!没错,par()的帮助页面包括使用\figure标记的示例。但我对这个线程的最初想法是要求一个工具来制作示例部分中的图形,例如,像这样
    #!/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