我正在研究一个knitr钩子,它将特定类的某些对象转换为将编织成html的聚合物标签。我对如何访问当前块的本地变量感到困惑。有没有办法区分全局环境中的变量和调用钩子的块中的变量?
chart <- function(before, options, envir) {
if (!before) {
charts <- lapply(ls(envir), function(obj){
chart_obj <- eval(parse(text=obj))
if (is(chart_obj,"FooChart")){
chart_obj
}
})
...
}
}
我写了这个思维环境是包含在块中的环境。但相反,我当前的实现是从先前的块中遍历全局环境中的相同图表。
我的目标是拥有一个像:
`r chart=TRUE`
chart_1 <- app$plot(...)
```
并让钩子搜索块,以便在不搜索全局环境的情况下处理图表对象。