【发布时间】:2018-12-06 11:10:12
【问题描述】:
notebook模式下变量不会从一个块到下一个块保留,但在将markdown文档编织成html时会保留。
我以gist called pythonvariables.Rmd 的形式提供了一个示例文档,该文件的内容是:
---
title: "R Notebook"
output:
html_document:
df_print: paged
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(reticulate)
```
```{python}
x = 1
```
```{python}
print(x)
```
```{r}
print(py$x)
```
在 Rstudio 1.1.453 版本中,在笔记本模式下,在一个接一个地运行块时,print(x) python 块的输出为:
Traceback (most recent call last):
File "C:\Users\rougipa\AppData\Local\Temp\2\RtmpQFW3Rj\chunk-code-1d44920f50.txt", line 1, in <module>
print(x)
NameError: name 'x' is not defined
但是,当 Rmd 编译为 html 时,问题不会出现。 print(x) python 块的输出是 1 正如预期的那样。
【问题讨论】:
-
这与 pjcrosbie 在此 knitr 错误请求中的第三条评论有关:Python environment persistance across chunks #1440。
-
要点可能会随着时间的推移而消失或变化,您能否包含 Rmarkdown 文档的(当前)来源以保持这个问题的自给自足?
-
如果问题与 RStudio 有关,请说明其版本。如果没有这些信息,盲目的猜测是最新(预览)版本可能已经解决了您的问题:rstudio.com/products/rstudio/download/preview
标签: python r r-markdown knitr reticulate