質問

私はそのようなRMDテンプレートを持っているRパッケージを書いています:

child.rmd:

```{r}
print(x)
```
.

とその機能:

child <- function(){
  myenv <- new.env()
  assign("x", 0, envir=myenv)
  # knit: 
  output <- knit_child("child.Rmd", envir=myenv)
  return(output)
}
.

そのようなファイルをニットします:

```{r, echo=FALSE}
library(mypackage)
```

`r child()` 
.

それはうまくいかない、出力は:

print(x)
## Error: object 'x' not found
.

は、あらゆるパッケージを含まずに自己完結型の例です。

```{r}
child <- function(){
  myenv <- new.env()
  assign("x", 0, envir=myenv)
  # knit: 
  output <- knit_child("child.Rmd", envir=myenv)
  return(output)
}
```

`r child()` 
.

他のヒント

knit_childenvirknitを渡していないようです。私は本当に理由がわからない。

あなたができることは、それが子供が利用可能になるようにmyenvを機能の外側に移動することです。

```{r}
myenv <- new.env()
child <- function(){
  assign("x", 0, envir=myenv)
  # knit: 
  output <- knit_child("child.Rmd")
  return(output)
}
```

`r child()` 
.

child.rmd

```{r}
print(get('x', envir=myenv))
```
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top