abi*_*hat 3 python r r-markdown reticulate quarto
我尝试在 Quarto 文档中从 Python 调用 R 对象:
---
title: "pandas"
format: html
jupyter: python3
---
```{r}
data("penguins", package = "palmerpenguins")
```
```{python}
penguins=r.penguins
penguins
```
Run Code Online (Sandbox Code Playgroud)
当我在 RStudio 中一一执行块时,一切正常:
> data("penguins", package = "palmerpenguins")
> reticulate::repl_python() # automatically executed by RStudio
Python 3.10.4 (/Users/.../3.10.4/bin/python3.10)
Reticulate 1.24 REPL -- A Python interpreter in R.
Enter 'exit' or 'quit' to exit the REPL and return to R.
>>> penguins=r.penguins
>>> penguins
species island bill_length_mm ... body_mass_g sex year
0 Adelie Torgersen 39.1 ... 3750 male 2007
1 Adelie Torgersen 39.5 ... 3800 female 2007
...
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试渲染此文档时,出现以下错误:
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Input In [1], in <cell line: 2>()
1 # Python chunk
----> 2 penguins=r.penguins
3 penguins
NameError: name 'r' is not defined
Run Code Online (Sandbox Code Playgroud)
根据RMarkdown 文档,不需要其他任何东西(所以不需要例如rpy2)。
我尝试在 R 块中添加library(reticulate)orreticulate::repl_python()但它不能解决问题。
注意:我知道RMarkdown有一个未解答的类似问题。
谢谢!
Quarto 有两个渲染引擎,knitr 和 jupyter。相关文档在这里。
如果我们使用:
---
title: "pandas"
format: html
---
```{r}
data("penguins", package = "palmerpenguins")
```
```{python}
penguins=r.penguins
penguins
```
Run Code Online (Sandbox Code Playgroud)
发动机将被编织。在渲染时,knitr 将使用reticulate(R Interface to Python)来运行 python 代码块。在这个过程中,knitr 会做一些神奇的事情,将 like 的形式转换r.penguins为 的形式reticulate。这样文档就可以成功渲染了。换句话说,knitr 做了一些调整,让我们可以轻松地用 运行 python 代码块reticulate,如果我们不使用 knit 引擎,我们就不能使用像 这样的形式r.penguins。
当使用 knit 引擎时,Quarto 使用 r 运行所有代码块(自动使用 r 包
reticulate运行 python 块)。
而Quarto在使用jupyter(jupyter:python3)引擎时使用python来运行所有代码块。如果我们想要运行r代码,我们必须使用python chunk中的模块(例如rpy2)(不是r chunk,r chunk中的代码将不会运行)。
我们还可以通过设置
jupyter: ir(如果我们安装了IRkernel)使用r来运行所有代码块。但是python chunk中的代码将不会运行。我们必须在r chunk中使用package(例如reticulate)来运行python代码。
这是我的理解。我的英语不好,所以如果有些句子让你感到困惑,我们可以进一步讨论。
| 归档时间: |
|
| 查看次数: |
2142 次 |
| 最近记录: |