Ответ 1
Возможно, вы захотите проверить пакет helpr
, который предоставляет веб-интерфейс для документации, которая, как и многие другие улучшения, отображает результаты примеров в строке.
При написании пакета в R вы можете создать страницы справки в формате Rd, а затем преобразовать их в HTML-страницы. Если страница справки содержит пример кода, она печатается в разделе "Примеры".
Например, для функции "prcomp" пакета "stats" есть две страницы:
Вопрос заключается в том, как генерировать результаты выполнения 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.
Я буду благодарен за любые замечания или предложения. Спасибо.
Возможно, вы захотите проверить пакет helpr
, который предоставляет веб-интерфейс для документации, которая, как и многие другие улучшения, отображает результаты примеров в строке.
Спасибо @rcs и @hadley за ваши комментарии.
Собственно, оба предложенных решения, похоже, не соответствуют моим потребностям. Встраивание изображений в формате Rd не так, поскольку я использую переход Roxygen > Rd. Пакет "helpr" действительно впечатляет, но я думаю, что он больше подходит для создания базы знаний всех пакетов, установленных на вашем компьютере. Мне нужно было что-то более базовое с гибкостью, чтобы делать изменения самостоятельно как разработчиком пакета.
Наконец, я получил то, что ожидал, fitSpline.html. Это очень похоже на ссылку, на которую я поставил вопрос, prcomp.html.
Я обнаружил, что нет способа использовать пакетные инструменты для получения изображений в документации HTML, по крайней мере, на данный момент. Таким образом, я написал bash script, который берет Rd файл на входе, извлекает раздел "\ examples" и получает вывод html/image, запустив Sweave. Впоследствии html-часть раздела "Результаты" объединяется с html-страницей, полученной командой "R CMD Rdconv -t 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
Я думал дать вам знать, что в R 2.14 появилось новое решение (см. здесь):
Разметка Rd имеет новый ярлык с цифрами, чтобы цифры могли быть включены в страниц справки при конвертации в HTML или LaTeX. Есть примеры на страницы справки для параметров par() и points().
Хэдли, ваша библиотека help отлично звучит, я бы с удовольствием попробовал ее, как только вы разместите ее более новую версию на CRAN.