문제

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