knit_child에서 Envir 인수를 사용하는 방법은 무엇입니까?
-
21-12-2019 - |
문제
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_child
는 envir
에 knit
에 전달되지 않는 것 같습니다.나는 그 이유를 정말로 알지 못한다.
할 수있는 한 가지는 기능 외부에서 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))
```
. 제휴하지 않습니다 StackOverflow