The goal of armadillo4r is to provide a novel approach to use the Armadillo C++ library by using the header-only cpp4r R package and to simplify things for the end-user. It uses the Apache 2.0 license.
⚠️Important⚠️: armadillo4r was created to ease writing functions in your own packages and does not offer on-the-fly compilation for code snippets.
The idea is to pass matrices/vectors from R to C++, write pure C++/Armadillo code for the computation, and then export the result back to R with the proper data structures.
RcppArmadillo is a popular R package used by over 1200 CRAN packages as of 2024-12-13. RcppArmadillo uses the GPL-3 license.
armadillo4r has different internals, even when the shared goal is to use Armadillo functions from R, and it aims to:
The design differences result in marginally higher speed for armadillo4r, and the real difference for the end user is that armadillo4r:
A previous package, cpp11armadillo, expands on these details
cpp11armadillo: An R package to use the Armadillo C++ library.
If this software is useful to you, please consider donating on Buy Me A Coffee. All donations will be used to continue improving armadillo4r.
Install the released version of armadillo4r from CRAN:
install.packages("armadillo4r")Or, alternatively, install the development version of armadillo4r from GitHub:
remotes::install_github("pachadotdev/armadillo4r")I have provided a package template for RStudio that also works with VS Code.
The idea of this package is to be as simple as possible, with the least amount of setup to get you started.
From RStudio/VSCode, go to an empty directory of your choice and run:
# subdir + package name
# subdir can be "." to create the package in the current directory
armadillo4r::pkg_template("pkgtemplate", "myownpackage")Then follow the instructions from README.md in the path where the new package is. The template contains a simple Ordinary Least Squares (OLS) example that you can run to test the package.
The vignette expands on the OLS estimator, and the hansen package expands on how to use armadillo4r for Econometric models.
The armadillo4rtest directory contains a package that I use to test armadillo4r. It includes tests for OLS, eigenvalues, matrix decompositions (Cholesky and QR), the Capital Asset Pricing Model (CAPM), and data consistency between R and C++. Please note that armadillo4rtest is a dummy package to test the C++ build with GitHub Actions, and you do not need to install it. You can check its code to get extra examples.
Armadillo supports OpenBLAS, Intel MKL, and the Accelerate framework (Mac).
Install OpenBLAS on Debian-based systems with:
sudo apt-get install libopenblas-devRestart R and run the following command to verify:
sessionInfo()R should display something like:
Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 
LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.20.so; LAPACK version 3.10.0