我正在編織一個.Rmd文件,並希望有兩個輸出:每次我運行鍼織HTML和一個purl'ed R腳本。這可以用下面的RMD文件來完成:purl()內knit()重複標籤錯誤
---
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每次運行時編織()(或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()
認爲即使沒有重複時也有重複的塊名稱。
是否有辦法在.Rmd文件中包含purl()
命令,以便生成兩個輸出(html和R)?還是有更好的方法來做到這一點?我的最終目標是使用新的rmarkdown::render_site()
構建一個網站,每次編譯網站時都會更新HTML和R的輸出。
你有沒有想過這個? – Jordan
我也有這個問題...非常令人沮喪。我想說出我的名字,因爲這個,我現在不能。 – Nova