R Statistical Programming Using MariaDB as the Background Database

You are viewing an old version of this article. View the current version here.

Introduction to R

R is a language and environment for statistical computing and graphics. R provides a wide variety of statistical (linear and nonlinear modelling, classical statistical tests, time-series analysis, classification, clustering, …), graphical techniques, machine learning packages and is highly extensible.

One of R’s strengths is the ease with which well-designed publication-quality plots can be produced, including mathematical symbols and formulae where needed. Great care has been taken over the defaults for the minor design choices in graphics, but the user retains full control.

The R environment

R is an integrated suite of software facilities for data manipulation, calculation, and graphical display. It includes:

• an effective data handling and storage facility,

• a suite of operators for calculations on arrays, in particular matrices,

• a large, coherent, integrated collection of intermediate tools for data analysis,

• graphical facilities for data analysis and display either on-screen or on hardcopy, and

• a well-developed, simple and effective programming language which includes conditionals, loops, user-defined recursive functions and input and output facilities.

Using R with MariaDB

R Installation

Some basic notions / tips on how to use R along with MariaDB are the following:

A. The recommended R distribution is “Microsoft R Open”: MRAN

B. The recommended R GUIs are RStudio Desktop, or RStudio Server: RStudio

An alternative would be Microsoft Visual Studio 2015 or 2017: R Tools for Visual Studio

“Microsoft R Open” and “MariaDB Server” can be installed either in the same server, or in different servers, as an ODBC communication protocol will be used for the exchange of data between the two environments.

Data Transfer between R and MariaDB

Package: "odbc"

For the transfer of data between MariaDB Server and R Environment, it is recommended R's "odbc" Package: CRAN odbc

  • “odbc" is a new R package available on CRAN (Since 2017-02-05), and maintained by RStudio, which is designed to comply with the DBI specification.

The "odbc" package requires to have previously installed the MariaDB or MySQL ODBC connector:

For installing the "odbc" package from CRAN, execute in R:


Package: "RMariaDB"

“RMariaDB” R library, is a modern 'MariaDB' client based on 'Rcpp'.

For installing RMariaDB package through CRAN, execute the following R statement:


Other Packages: "readr", "RODBC"

There are other alternatives for data transfer between R and MariaDB:

  • “readr” R package, for writing / reading CSV files. To be used in MariaDB along with “LOAD DATA INFILE”.
  • "RODBC" R package: Robust and well-tested (Since 2000-05-24) package which enables data transfer between R and MariaDB by means of an ODBC connector: CRAN RODBC
    • It is slightly slower than RStudio's new "odbc" package (See benchmarks): RStudio odbc
    • For bug report to the RODBC package maintainer, use the following R statement: bug.report(package = "RODBC")
    • A vignette on how to use the RODBC package can be found here: RODBC CRAN Vignette

R Programming Resources

A) Programming

Recommended resources for learning how to program in R are the following:

An extract of the books can be found here:

B) Statistics

An excellent book for understanding the underlying statistics in the R packages is:

C) Cheatsheets: Concept Summary

D) Search Engine

  • For searching any R related information, the following web searcher is recommended (Based on Google): RSeek

E) Statistical / Unsupervised Machine Learning, Deep Learning and Artificial Intelligence

The R Programming language has support for the H2O.ai library (h2o), which enables in-memory multi-cluster machine learning models.

For installing H2O.ai through CRAN, execute:


The following R Statements can be used for importing a MariaDB table to H2O.ai using the R Front End:

  • import_sql_table: "This function imports a SQL table to H2OFrame in memory".
  • import_sql_select: "This function imports the SQL table that is the result of the specified SQL query to H2OFrame in memory".
connection_url <- "jdbc:mariadb://"
username <- "root"
password <- "abc123"

# Whole Table:
table <- "citibike20k"
my_citibike_data <- h2o.import_sql_table(connection_url, table, username, password)

# SELECT Query:
select_query <-  "SELECT  bikeid  FROM citibike20k"
my_citibike_data <- h2o.import_sql_select(connection_url, select_query, username, password)

NOTE: Be sure to start the h2o.jar in the terminal with your downloaded JDBC driver in the classpath:

java -cp <path_to_h2o_jar>:<path_to_jdbc_driver_jar> water.H2OApp


Comments loading...
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.