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)
```
`x` を作成する
Python セッションで変数
```{python}
x = [1, 2, 3]
```
`x` にアクセスする
R コードチャンクで Python 変数
```{r}
py$x
```
`y` を作成し,
R を使って Python セッションで新しい変数 `y` にデータフレームを与える
```{r}
py$y <- head(cars)
```
`y` を表示する
Python で変数
```{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.