purl () innerhalb von knit () duplicate label error

Ich stricke eine .RMD-Datei und möchte bei jedem Ausführen von stricken zwei Ausgaben haben: den HTML-Code und ein R-Skript. Dies kann mit der folgenden Rmd-Datei erfolgen:

---
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
```

Wenn Sie den Block nicht benennen, funktioniert er einwandfrei und Sie erhalten jedes Mal, wenn Sie stricken () ausführen (oder in RStudio auf stricken klicken), eine HTML- und eine R-Ausgabe.

Wenn Sie jedoch den Block benennen, schlägt dies fehl. Beispielsweise

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
```

Es schlägt fehl mit:

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

Wenn Sie das @ auskommentierpurl() call, es wird mit dem genannten Chunk funktionieren. Da ist also etwas dran, wie daspurl() call benennt auch Chunks, die @ verursacheknit() um zu denken, dass es doppelte Chunk-Namen gibt, auch wenn es keine Duplikate gibt.

Gibt es eine Möglichkeit, ein @ einzufügepurl() Befehl in einer .RMD-Datei, damit beide Ausgaben (HTML und R) erzeugt werden? Oder gibt es einen besseren Weg, dies zu tun? Mein oberstes Ziel ist die Verwendung des neuenrmarkdown::render_site(), um eine Website zu erstellen, die die HTML- und R-Ausgabe jedes Mal aktualisiert, wenn die Site kompiliert wird.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage