15.2 Python コードの実行と双方向処理
あなたが Python を好んでいることは知っていますので, とてもはっきりと言ってしまいましょう. R Markdown と knitr はなんと Python をサポートしています.
Python のコードチャンクを R Markdown 文書に加えるには チャンクヘッダ ```{python} を使うことができます. 例えばこのように.
```{python}
print("Hello Python!")
```いつもどおりにチャンクヘッダに echo = FALSE or eval = FALSE といったチャンクオプションを追加することができます. Python の matplotlib パッケージで描かれたグラフもサポートしています.
R Markdown と knitr の Python サポートは reticulate パッケージ (Ushey, Allaire, and Tang 2022) に基づいており, このパッケージの重要な機能の1つは Python と R の双方向的なコミュニケーションを可能にすることです. 例えば reticulate の py オブジェクトを介して R セッションから Python の変数にアクセスしたり作成したりすることもできます.
```{r, setup}
library(reticulate)
```
Python セッションで変数 `x` を作成する
```{python}
x = [1, 2, 3]
```
R コードチャンクで Python 変数 `x` にアクセスする
```{r}
py$x
```
R を使って Python セッションで新しい変数 `y` を作成し,
`y` にデータフレームを与える
```{r}
py$y <- head(cars)
```
Python で変数 `y` を表示する
```{python}
print(y)
```reticulate パッケージに関する詳細については, https://rstudio.github.io/reticulate/ のドキュメントを見ることもできます.
参考文献
Ushey, Kevin, JJ Allaire, and Yuan Tang. 2022. Reticulate: Interface to Python. https://CRAN.R-project.org/package=reticulate.