Преобразование между knitr и sweave - PullRequest
1 голос
/ 08 марта 2019

Об этом можно было спросить раньше, но до сих пор я не мог найти действительно полезного ответа для себя.

Я использую R Studio с knitr, и мой коллега, с которым мне нужно сотрудничать, использует формат sweave. Есть ли хороший способ конвертировать сценарий туда и обратно между этими двумя?

Я уже нашел "Sweave2knitr" и надеялся, что это будет иметь .rmd, поскольку выходные данные со всеми чанками изменились (с <<>> на {} и т. Д.), Но это не так. Моя главная проблема заключается в том, что мне также понадобится опция конвертации из .rmd обратно в .rnw, чтобы мой коллега мог также отредактировать мою работу.

Большое спасибо!

Ответы [ 2 ]

1 голос
/ 08 марта 2019

Чтобы обработать фрагменты кода и преобразовать файл .Rnw в .tex, вы используете функцию knit() в пакете knitr, а не Sweave ().

R -e 'library(knitr);knit("my_file.Rnw")'

Sweave2knitr () - для преобразования старых файлов .Rnw на основе Sweave в синтаксис knitr.

В настройках программы по умолчанию: Weave Rnw файлы, используя Sweave или Knitr enter image description here

0 голосов
/ 09 апреля 2019

Формат Rnw - это действительно LaTeX с некоторыми модификациями, тогда как формат Rmd - это Markdown с некоторыми модификациями. Существует два основных варианта Rnw, один из которых Sweave является оригиналом, а другой knitr является его модификацией, но они очень похожи.

Нетрудно изменить Sweave ароматизированный Rnw на knitr ароматизированный Rnw (это то, что делает Sweave2knitr), но изменение любого из них на Rmd потребует значительных изменений и, вероятно, не выполнимо: конечно, я ожидаю много ручной работы после изменения.

Так что для вашей совместной работы с соавтором я бы порекомендовал вам остановиться на одном формате и просто использовать его. Я бы выбрал Rmd для этого: вашему соавтору гораздо легче выучить Markdown, чем вам изучить LaTeX. (Если вы уже знаете LaTeX, это может подтолкнуть вас к другому.)

...