2014-01-05 4 views
7

Я не уверен, если этот тип вопроса соответствует SO правил для четко определенных вопросов;) ... в любом случае:Преобразование файла с разметкой Sweave в R - доступный код или конвертеры?

Я хочу, чтобы преобразовать несколько R Sweave файлов (.Rnw) к R уценки файлов (.Rmd) , Джераминг Англин опубликовал по этому вопросу here, но кода нет. Я пытался использовать pandoc, но, конечно, pandoc не может правильно обрабатывать теги кусков и встроенные теги кода.

Consclusion: Я думаю, мне придется делать писать код для разбора моих .Rnw файлов, чтобы подготовить их для pandoc преобразования. Таким образом, мои вопросы:

  1. Есть ли лучший способ пойти?
  2. Есть ли у кого-нибудь случайно код , который будет выполнять эту работу?

ТИА

+0

'knitr :: Sweave2knitr()' - это то, что вы хотите? –

+0

К сожалению, нет. Я хочу преобразовать .Rnw (tex) в .Rmd (markdown). То, что делает функция, это преобразовать .Rnw (tex, синтаксис Sewave) в .Rnw (текс, синтаксис knitr). Но это уже будет полезным первым шагом при переходе с .Rnw (синтаксис Sweave) на R markdown! –

+0

Вы понимаете, что подразумевается преобразование tex в уценку, что невозможно, поскольку TeX имеет гораздо больше возможностей, чем уценка? –

ответ

4

Как прокомментировал @Karl, LaTeX -> уценки не тривиальное преобразование, поскольку есть гораздо больше возможностей и сред, доступных в LaTeX по сравнению с уценкой. Вероятно, вам лучше всего работать с чем-то вроде pandoc (см. Демонстрацию №5). В принципе, вместо того, чтобы делать

.Rnw -> .Rmd -> .md

вы могли бы сделать

.Rnw -> .tex -> .md

с pandoc , Если вы действительно хотите перейти от .Rnw -> .Rmd, вы можете проверить пакет pander, чтобы написать функцию для извлечения фрагментов кода, конвертировать оставшийся контент LaTeX в уценку и затем повторно вставить фрагменты кода в уцененный документ.