当我在knit
调用中调用使用knit
的函数时,我遇到了重复的标签错误。如果我标记块,问题就会消失。有没有办法以不与父some_function
电话发生冲突的方式来呼叫knit
?
library(knitr)
some_function <- function(){
knit(text ="
```{r }
1
```
")
}
cat(knit(text ="
```{r }
some_function()
```
```{r }
some_function()
```
"))
输出:
```r
some_function()
```
```
## Error: duplicate label 'unnamed-chunk-1'
```
答案 0 :(得分:3)
您可以在knit_child()
中使用knit()
代替some_function()
:
library(knitr)
some_function <- function(){
knit_child(text ="
```{r }
1
```
")
}
cat(knit(text ="
```{r }
some_function()
```
```{r }
some_function()
```
"))
答案 1 :(得分:1)
我不完全理解您的代码的上下文使用。为什么不使用简单的knitr子文档功能?
这里有一个解决方法(如果你提供更多的上下文,希望别人能为你提供更好的解决方案)
some_function <- function(chunk.name='chunk1'){
knit(text =sprintf("
```{r %s}
1
```
",chunk.name))
}
cat(knit(text ="
```{r }
some_function('a1')
```
```{r }
some_function('a2')
```
"))