ocaml-r

Objective Caml bindings for the R interpreter
README

OCaml-R is an Objective Caml binding embedding R's interpreter into
OCaml code. It also provides bindings to R's standalone mathematical
library, and has embryonic support for R's standard libraries.

It can be used to build R datastructures in memory, call R functions
and convert the returned value to OCaml datastructures.

The API documentation is available
online.

Installation

opam install ocaml-r

Library usage

Under utop:

# #require "ocaml-r.base";;
# open OCamlR_base;;
# Numeric.(of_list [3. ; 1. ; 4. ; 1. ; 5. ; 9.] |> print);;
[1] 3 1 4 1 5 9
- : unit = ()

To access functions from package foo, load ocaml-r.foo, e.g.:

# #require "ocaml-r.stats";;
# OCamlR_stats.rnorm 6 |> Numeric.print;;
[1]  0.17350351 -0.72756521  2.02369760 -0.77302094 -1.28523133  0.05172992
- : unit = ()

There are other packages. ocaml-r.math links to the standalone
mathematical shared library of R. Other packages, such as R.base and
R.stats are embryonic bindings of R's standard library. Help is very
welcome on this side.

Authorship

OCaml-R was initially written by Maxence Guesdon. It was a rather
simple binding that was used essentially by feeding strings to the R
interpreter parser and evaluation function, and providing data
conversion functions for simple R types. This was version 0.1 of
OCaml-R.

Version 0.2, is essentially an almost complete rewrite by Guillaume
Yziquel providing tight integration with the R library. It can
dissect R values to expose their internal structures to OCaml (though
this shouldn't be the most useful aspect, nor the recommended way to
use this binding), it construct R calls by building up R values
directly, integrates OCaml's and R's garbage collectors (though
somewhat poorly), chains R exceptions back to Objective Caml, and
provides static initialisation of the R interpreter.

Starting 2012, Philippe Veber took over the maintainance.

Copyright 2008-2010 INRIA - Maxence Guesdon.
Contact: maxence.guesdon@inria.fr

Copyright 2009-2010 Guillaume Yziquel.
Contact: guillaume.yziquel@citycable.ch

Copyright 2011-2018 Philippe Veber.
Contact: philippe.veber@gmail.com

Licenced under the GPL version 3.

Install
Published
02 Nov 2021
Sources
ocaml-r-0.5.0.tbz
sha256=35fc05e7852e18309df75caaeb61d466d2eeaeee13bc31e509576da040b3606e
sha512=5b4ad4e76fe2239acc50edd8b6a3636434111af78d2279fa1f818c8127ebe72262d421d8488adfd15466d1893d9e5a05a5aa754bcbe68a32ecd8b0e4a4b2c19a
Dependencies
stdio
>= "v0.14" & build
ocaml
>= "4.08"
dune
>= "2.5"
conf-r
build
base
build & >= "v0.14"
alcotest
with-test
Reverse Dependencies