Я читаю источник часто задаваемых вопросов по R в texinfo и думаю, что было бы проще для управления и расширения, если он был проанализирован как структура R. Есть несколько существующих примеров, связанных с этим:
пакет удачи
бибтекс записи
Rd файлы
каждый с некоторыми желаемыми функциями.
На мой взгляд, часто задаваемые вопросы недостаточно используются в сообществе R, потому что им не хватает i) легкого доступа из командной строки R (т. е. через пакет R); II) мощные функции поиска; iii) перекрестные ссылки; iv) расширения для предоставленных пакетов. Черпая идеи из пакетов bibtex
и fortunes
, мы могли бы придумать новую систему, в которой:
Часто задаваемые вопросы можно искать в R. Типичные вызовы напоминают интерфейс
fortune()
:faq("lattice print")
илиfaq() #surprise me!
,faq(51)
,faq(package="ggplot2")
.Пакеты могут предоставлять свои
FAQ.rda
, формат которых пока не ясен (см. ниже)Предоставляются драйверы
Sweave
/knitr
для вывода хорошо отформатированных файлов Markdown/LaTeX и т. д.
ВОПРОС
Однако я не уверен, какой формат ввода является лучшим. Либо для преобразования существующего FAQ, либо для добавления новых записей.
Довольно громоздко использовать синтаксис R с деревом вложенных списков (или специальным S3/S4/ref class
или structure
,
\list(title = "Something to be \\escaped", entry = "long text with quotes, links and broken characters", category = c("windows", "mac", "test"))
Rd
, хотя это и не структура R как таковая (это скорее подмножество LaTeX с собственным синтаксическим анализатором), возможно, может предоставить более привлекательный пример формата ввода. Он также имеет набор инструментов для разбора структуры в R. Однако его текущая цель довольно специфична и отличается , ориентируясь на общую документацию по функциям R, а не на часто задаваемые вопросы. Его синтаксис тоже не идеален, я думаю, что более современная разметка, что-то вроде уценки, была бы более читабельной.
Есть ли что-то еще, может быть, примеры разбора файлов уценки в структуры R? Пример отклонения файлов Rd от их предназначения?
Подводя итоги
Я хотел бы придумать:
1- хороший дизайн для структуры R (возможно, класса), который расширил бы пакет fortune
до более общих записей, таких как элементы часто задаваемых вопросов.
2- более удобный формат для ввода новых FAQ (вместо текущего формата texinfo)
3- синтаксический анализатор, написанный либо на R, либо на другом языке (bison?), чтобы преобразовать существующий FAQ в новую структуру (1) и/или новый формат ввода (2) в структуру R.
Обновление 2: за последние два дня периода вознаграждений я получил два ответа, оба интересные, но совершенно разные. Поскольку вопрос довольно обширен (возможно, некорректно поставлен), ни один из ответов не дает полного решения, поэтому я не буду (во всяком случае, пока) принимать ответ. Что касается вознаграждения, я отнесу его к ответу, за который проголосовали больше всего до истечения срока действия вознаграждения, желая, чтобы был способ разделить его более равномерно.