Как выводить литературные обратные выходы в knitr:: spin
Я пытаюсь создать несколько шаблонов шаблонов для документов knitr::spin
в R Studio, и мне нужно, чтобы они включали литеральные обратные ссылки, чтобы итоговый документ содержал фрагмент R:
Пример желаемого вывода:
#' ---
#' author: 'ENTER'
#' title: 'ENTER'
#' date: '`r Sys.time()`'
#' output:
#' html_document
#' ---
Однако я не могу понять, как выводить обратные ссылки. Это:
`r paste("#' date: '`Sys.time()`')`
не будет работать, поскольку отметки меток прерывают команду вставки при рендеринге из фрагмента R Studio в R-код. Я пытаюсь хэшировать отметки, добавляя вперед и назад косые черты и т.д., Но не нашел решение, которое правильно отображает эту строку:
#' date: '`r Sys.time()`'
Windows 7 Enterprise, 64-разрядная операционная система
R Версия: 3.2.5
R Studio Версия: 0.99.903
knitr Версия: 1.14
Пример: я пробовал это, но он по-прежнему переводит код R вместо того, чтобы просто печатать текст:
snippet spin.header
`r paste("#' ---")`
`r paste("#' author: 'ENTER'")`
`r paste("#' title: 'ENTER'")`
`r paste("#' date: '<code>``` `r Sys.time()` ```</code>'")`
`r paste("#' output:")`
`r paste("#' html_document")`
`r paste("#' ---")`
Ответы
Ответ 1
Правильный ответ был отправлен rawr
в комментариях (он пропустил только r и отметку галочки):
snippet spin.header
`r paste("#' ---")`
`r paste("#' author: 'ENTER'")`
`r paste("#' title: 'ENTER'")`
`r paste("#\' date: '\x60r Sys.time()\x60'")`
`r paste("#' output:")`
`r paste("#' html_document")`
`r paste("#' ---")`
Ответ 2
Один из вариантов заключается в том, чтобы разбить токен, используемый во время обработки фрагментации для встроенного R.
snippet sh
#' ---
#' author: '${1:AUTHOR}'
#' title: '${2:TITLE}'
#' date: '`${3:}r Sys.time()`'
#' output:
#' html_document
#' ---
${0}
Другой вариант - полностью исключить синтаксический анализ inline.
snippet sh
`r paste0(readLines("~/.R/snippets/spinheader.txt"),collapse = '\n')`
spinheader.txt
#' ---
#' author: '${1:AUTHOR}'
#' title: '${2:TITLE}'
#' date: '`r Sys.time()`'
#' output:
#' html_document
#' ---
${0}