4

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

2 に答える 2

3

inknit_child()の代わりに使用できます:knit()some_function()

library(knitr)
some_function <- function(){
  knit_child(text ="
    ```{r }
        1
    ```
    ")
}
cat(knit(text ="
```{r }
    some_function()   
```
```{r }
    some_function()   
```
"))
于 2013-07-12T07:41:21.663 に答える
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')   
```
"))
于 2013-07-08T20:40:11.287 に答える