Gle*_*son 5 python r knitr reproducible-research
yihui 给出了一个针对不同引擎使用缓存选项的示例
https://github.com/yihui/knitr-examples/blob/master/023-engine-python.Rmd
我似乎无法让它为 python 工作。
以下作品
```{r,engine='python',cache=TRUE}
x=10
print x
```
Run Code Online (Sandbox Code Playgroud)
但这不起作用
```{r,engine='python',cache=TRUE}
x = 10
```
```{r,engine='python',cache=TRUE}
print x
```
Run Code Online (Sandbox Code Playgroud)
有人有想法吗?
块选项cache不会保存块中定义的所有变量,用于除R. 但是,它是保存打印输出,因此如果您计算需要一段时间的内容,则无需重新计算任何结果。从knitr网站:
除了
engine='R'(默认),所有块都在单独的会话中执行,因此变量不能直接共享。如果我们想使用之前块中创建的对象,我们通常必须将它们写入文件(作为副作用)。对于 bash 引擎,我们可以使用Sys.setenv()将变量从 R 导出到 bash(示例)。
可以在 shell 的环境中保存一些值,并通过读取环境从其他单元格中检索这些值。这就是Yihui 在 Polyglot 示例中采用的方法。因此,对于 Python,如果您可以将值格式化为字符串并将其传递给sys.setenv(),则可以通过调用sys.getenv().
不过,我对C和Fortran引擎采取的方法有点困惑。这些似乎通过有机会获得在以后的块编译函数使用名为某种功能.C()或调用的函数.Fortran()。但似乎 Python 没有等价物。
| 归档时间: |
|
| 查看次数: |
718 次 |
| 最近记录: |