org-babel support for the reticulate interface between R and Python.
ob-reticulate
is available from MELPA. It requires Org 9.4 or higher.
To get started, load ob-reticulate
, then enable it by activating
ob-reticulate-mode
:
(require 'ob-reticulate)
(ob-reticulate-mode)
Simply pass an interactive R buffer’s name as the :session
header
argument to an ob-python
block. The Python block will then be
executed via reticulate
in the R session.
You’ll need to first load reticulate in the R session by calling
library(reticulate)
.
For example:
#+begin_src R :session *R:ob-reticulate* :results output
library(reticulate)
#+end_src
#+RESULTS:
#+begin_src python :session *R:ob-reticulate* :colnames yes
import pandas as pd
df = pd.DataFrame({"X":[1,2,3], "Y":["a","b","c"]})
df
#+end_src
#+RESULTS:
| X | Y |
|---+---|
| 1 | a |
| 2 | b |
| 3 | c |
#+begin_src R :session *R:ob-reticulate* :results output
summary(py$df)
#+end_src
#+RESULTS:
: X Y
: Min. :1.0 Length:3
: 1st Qu.:1.5 Class :character
: Median :2.0 Mode :character
: Mean :2.0
: 3rd Qu.:2.5
: Max. :3.0
Reticulate blocks use header arguments for ob-R
instead of
ob-python
. For example, the :colnames
and :rownames
headers,
which are available in ob-R
but not ob-python
, can be used with
blocks executed by reticulate
.