dbdahl / rscala   3.2.19


The Scala interpreter is embedded in R and callbacks to R from the embedded interpreter are supported. Conversely, the R interpreter is embedded in Scala.

Scala versions: 2.13 2.12 2.11 2.10

rscala: Bridge Between 'R' and 'Scala' with Callbacks

By David B. Dahl (Brigham Young University)

The rscala package provides a bridge between R and Scala, enabling a user to exploit each language's respective strengths in a single project. The rscala package brings Scala and Java libraries into R with a simple interface. Specifically, Scala classes can be instantiated and methods of Scala classes can be called directly. Furthermore, arbitrary Scala code can be executed on the fly from within R and callbacks to R are supported. Conversely, rscala also enables arbitrary R code to be embedded within a Scala application.


In R, install the package by executing:


To install --- or check the compatability of your existing installation of --- Scala and Java, please execute:


Note that if only want to embed R in a Scala application, you don't need to install the package. Simply add the following line to the your SBT build.sbt file:

libraryDependencies += "org.ddahl" %% "rscala" % "3.2.19"

Or if you're managing dependencies with Maven, you may add the following to your pom.xml file, replacing the version numbers for Scala and for this library as appropriate.


Usage guides

The original paper describing the software is:

D. B. Dahl (2020), Integration of R and Scala using rscala, Journal of Statistical Software, 92:4, 1-18, doi:10.18637/jss.v092.i04.

The citation information is available using:


An updated version of the paper is available here.


The functionality of the software is also described and demonstrated in the help files:


Example packages built with rscala

R extensions can be written using this package, as demonstrated by these packages:


  • Vignette describing the package usage.
  • Git repository containing source code and build & test scripts.
  • Scaladoc for RClient class to access R from Scala.