by David SchmüddeJul 03 2019
Turing complete.

RPY2

rpy2

import rpy2.robjects.packages as rpackages
import rpy2.robjects as ro
rpackages.importr("ggplot2")
R = ro.r
datasets = rpackages.importr('datasets')
mtcars = rpackages.data(datasets).fetch('mtcars')['mtcars']
gp = ggplot2.ggplot(mtcars)
pp = (gp 
      + ggplot2.aes_string(x='wt', y='mpg')
      + ggplot2.geom_point(ggplot2.aes_string(colour='qsec'))
      + ggplot2.scale_colour_gradient(low="yellow", high="red") 
      + ggplot2.geom_smooth(method='auto') 
      + ggplot2.labs(title="mtcars", x='wt', y='mpg'))

pp.plot()
# R.head(mtcars)
# R("dev.copy(png,'/results/out.png')")
pp.plot()._repr_png_

rpy2 Install

Install R from the R 3.5/3.6 repository for Ubuntu. The build-essential package (which includes gcc) is a necessary prerequisite for installation of some R packages but is already included in the Python base.

echo 'deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/' > \
  /etc/apt/sources.list.d/r35.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9

apt-get -qq update
DEBIAN_FRONTEND=noninteractive \
  apt-get install --no-install-recommends \
  r-base
apt-get clean
rm -r /var/lib/apt/lists/* # Clear package list so it isn't stale
echo 'local({
  r <- getOption("repos")
  r["CRAN"] <- "https://cloud.r-project.org"
  options(repos = r, download.file.method = "libcurl")
})' > /etc/R/Rprofile.site

Install two necessary packages for R to work on Nextjournal.

R -e 'install.packages(c("base64enc", "jsonlite"), Ncpus=4)'
pip install rpy2
import rpy2
print(rpy2.__version__)
# import rpy2's package module
import rpy2.robjects.packages as rpackages

# import R's utility package
utils = rpackages.importr('utils')

# select a mirror for R packages
utils.chooseCRANmirror(ind=1) # select the first mirror in the list

utils.install_packages('ggplot2')
<rpy2.rinterf...RTYPES.NILSXP]