С одним файлом разметки R я хотел бы создать различные возможные выходные документы PDF, в которых имя выходного файла должно быть определено внутри документа. Есть ли способ убедить уценку манипулировать выходным именем файла таким образом? В идеале я хотел бы передать имя файла r chunk.R Markdown - имя переменной с переменным
ответ
Вы можете сохранить простоту использования Knit
кнопку RStudio и воспроизводимости заголовка YAML, используя недокументированные knit
крюк, чтобы пересмотреть то, что делает кнопка (функция по умолчанию под названием является rmarkdown::render
). Параметр output_file
функции рендеринга указывает имя файла, поэтому, устанавливая его, вы переопределяете стандартное поведение с использованием того же префикса, что и имя входного файла.
например. чтобы всегда выходной файл с именем myfile.pdf
knit: (function(inputFile, encoding) { rmarkdown::render(inputFile, encoding = encoding, output_file = file.path(dirname(inputFile), 'myfile.pdf')) })
Функция может быть анонимным один лайнер, а также импортировать из пакета, как видно here с slidify.
Вы можете установить свои собственные заголовки YAML (я не знаю, если это вообще рекомендуется), доступный под rmarkdown::metadata$newheader
, но они не кажутся доступными в пределах такого рода функций, насколько я могу видеть.
Что касается передачи имени файла из R-фрагмента ... если вы имеете в виду фрагменты кода ниже заголовка YAML, из моего опыта я не думаю, что это возможно (?). Заголовки могут содержать встроенные команды R (одна обратная сторона - в комплекте, начиная с r
), но, похоже, не для этой функции крючка.
Связанные:
-
вопрос репо
- Rmarkdown GitHub - output format-specific
output_file
- Блог пост я написал после этого вопроса on more elaborate uses of the
knit:
hook/соответствующего GitHub wiki notes
Ошибка в rmarkdown :: metadata $ title <- "My Title": объект 'rmarkdown' не найден – jzadra
@yihuixie, могу ли я передать параметры $ независимо от имени выходного файла? Моя отметка использует данные params $ для сбора соответствующего файла данных, но похоже, что это не работает в вашем однострочном лайнере - 'params $ data not found'. Я могу передать все, что захочу, из сценария с помощью rrmdown :: render (params = list (data = "Oct2017data"), output_file = "Oct2017_analysis.html") ', но, очевидно, я хочу иметь возможность набирать его только один раз. – StasK
Это довольно много, что я делаю:
rmarkdown::render('my_markdown_report.Rmd',
output_file = paste('report.', Sys.Date(),
'.pdf', sep=''))
У меня есть три сценария - один тянет данные и обработать его, второй созданные диаграммы & таблицы для отчета. Третий создает отчет, основанный на файле уценки. Код вы видите выше, является частью третьего сценария
До сих пор я использовал команду RStudios knit для компиляции некоторого файла уценки.Если я правильно вас понимаю, вы создаете фактический файл разметки с помощью R-команд и даже управляете вязанием уценки с помощью R-команд? До сих пор я не знал об этом подходе, но я буду более пристально смотреть. До сих пор я также готовил данные и обрабатывал их в первом скрипте, но уже на втором этапе я вручную создал файл уценки, помещая, например, различные источники данных в некоторый отчет. – Sosel
Да. файл markdown - отдельный скрипт сам по себе, он одновременно считывает диаграммы и таблицы мест данных. Он вызывается, однако, из внешнего скрипта - вы также можете запустить/выполнить его из Rstudio и создать файл с тем же именем. Однако я называю это из отдельного сценария и после того, как rmarkdown создает pdf-файл, который копируется в разные места – ilya
После того, о чем писал @ilya, эта веб-страница имеет отличный пример, демонстрирующий то, что они описывают, а именно, как создавать несколько воспроизводимых отчетов из того же документа .Rmd :
http://www.reed.edu/data-at-reed/software/R/markdown_multiple_reports.html
Веб-страница использует два сценария, один R сценарий и один сценарий Rmarkdown для создания нескольких отчетов. Я использовал его как шаблон для своей собственной работы и счел его очень полезным.
- 1. R Markdown - Автоматизированные куски?
- 2. R markdown: Доступ к переменной из фрагмента кода (область переменной)
- 3. Нужно назначить имя столбца переменной переменным SQL
- 4. Интерактивные заголовки R markdown
- 5. Как добавить к переменным имя переменной? JAVA
- 6. R markdown, связанный с рисунком
- 7. R markdown table с заголовком
- 8. R - Доступ к переменным формулы
- 9. R - Как преобразовать строку в имя переменной
- 10. Python альтернатива R Markdown
- 11. Условный цвет шрифта R Markdown
- 12. Markdown Regex in R
- 13. Перекрывающиеся изображения R markdown
- 14. R markdown выходной размер
- 15. R markdown - \ FloatBarrier эквивалент
- 16. R Имя переменной Содержит точку с запятой
- 17. R markdown "texreg"
- 18. Передача параметров R Markdown
- 19. TikZ in R Markdown
- 20. R Markdown шаблонов Создание
- 21. R Markdown не запускается
- 22. R inline markdown
- 23. Имя и фамилия, перевернутые в библиографии r markdown
- 24. Заменить имя переменной в строке с переменной величиной [R]
- 25. Извлечь значение/имя из r Markdown selectInput (выпадающее меню)
- 26. Описание и график для каждой переменной в R Markdown
- 27. Установить заголовок как значение переменной в R markdown
- 28. Прочитайте CSV и присвойте значения r переменным
- 29. PHP динамическое имя переменной
- 30. Markdown и наброски сценария R
Вы могли бы оставить сообщение? вы хотите назвать файлы «динамически»? 'paste0 (" file_ ", x,". pdf ")?' x может быть датой или именем набора данных – rmuc8
До сих пор я использовал RStudio, выполняя команду knit без фактического изучения более подробной информации. Но мне следовало бы поближе познакомиться с ильясским ответом, звучит как более понятный подход. – Sosel