purl () в knit () ошибка дублирующейся метки
Я вяжу файл .Rmd и хочу иметь два вывода: html и purl'ed R-скрипт при каждом запуске knit. Это можно сделать с помощью следующего файла Rmd:
---
title: "Purl MWE"
output: html_document
---
```{r}
## This chunk automatically generates a text .R version of this script when running within knitr.
input = knitr::current_input() # filename of input document
output = paste(tools::file_path_sans_ext(input), 'R', sep = '.')
knitr::purl(input,output,documentation=1,quiet=T)
```
```{r}
x=1
x
```
Если вы не называете чанк, он работает нормально, и вы получаете вывод html и .R каждый раз, когда запускаете knit () (или нажимаете knit в RStudio).
Тем не менее, если вы назовете кусок, это не удастся. Например:
title: "Purl MWE"
output: html_document
---
```{r}
## This chunk automatically generates a text .R version of this script when running within knitr.
input = knitr::current_input() # filename of input document
output = paste(tools::file_path_sans_ext(input), 'R', sep = '.')
knitr::purl(input,output,documentation=1,quiet=T)
```
```{r test}
x=1
x
```
Это терпит неудачу с:
Quitting from lines 7-14 (Purl.Rmd)
Error in parse_block(g[-1], g[1], params.src) : duplicate label 'test'
Calls: <Anonymous> ... process_file -> split_file -> lapply -> FUN -> parse_block
Execution halted
Если вы закомментируетеpurl()
вызов, это будет работать с именованным чанком. Так что есть кое-что о том, какpurl()
вызов также называет куски, которые вызываютknit()
думать, что есть повторяющиеся имена чанков, даже если нет дубликатов.
Есть ли способ включитьpurl()
команда внутри файла .Rmd, чтобы оба вывода (html и R) были произведены? Или есть лучший способ сделать это? Моя конечная цель - использовать новыйrmarkdown::render_site()
создать сайт, который обновляет вывод HTML и R при каждой компиляции сайта.