jan*_*cki 2 r knitr r-markdown
拥有和Rmd文件的内容如下:
```{r}
data.frame(a=1)
str(.Last.value)
```
Run Code Online (Sandbox Code Playgroud)
它渲染data.frame但渲染str(.Last.value)产生## NULL.
是否有任何编织选项或技巧可以让它按预期工作?
第二个预期的输出
## 'data.frame': 1 obs. of 1 variable:
## $ a: num 1
Run Code Online (Sandbox Code Playgroud)
因为所有码块被通过评估eval()在knitr,码块的最后一个表达式不是顶级 R的表达,而.Last.value不会为工作knitr.
为了更清楚:
x = 1
x # a top-level expression if typed in the R console
Run Code Online (Sandbox Code Playgroud)
相比之下,x不再是顶级表达式eval():
some_internal_knitr_function() {
# internal code
eval(parse(text = c('x = 1', 'x')))
# more internal code
}
Run Code Online (Sandbox Code Playgroud)