Rcpp and related Projects
A fair number of recent projects involve the Rcpp package for seamless R and C++
integration, and several related packages.
The Rcpp website has more about
Rcpp, and the Rcpp Gallery
presents a number of worked examples.
RcppArmadillo, RcppEigen and RcppGSL extend, respectively, to the
Armadillo, Eigen and GSL frameworks. Most of these packages were at
least initially authored jointly by the Rcpp Core team.
Several few smaller and sometimes still incomplete packages use Rcpp
to extend to other interesting package or libraries.
A few examples are RcppAnnoy (fast
Nearest Neighbours classifier), RcppAPT
(interfacing APT on Debian/Ubuntu/…), RcppBDT (Boost DateTime access), RcppCCTZ (time-zone library), RcppCNPy (read/write NumPy files), RcppDate (modern date library), RcppDE
(differential evolution optmizations), RcppFastAD (fast automatic
differentiation), RcppFarmHash
(hasher used by BigQuery), RcppFastFloat (fast character
conversion), RcppGetconf (system
configuration access), RcppInt64
(int64 variables), RcppKalman
(Kalman Filter), RcppMsgPack (Date
serialization / transfer), RcppNLoptExample (NLopt via
Rcpp), RcppRedis (faster Redis
read/write access), RcppSimdJson
(fastest JSON parser) RcppSMC
(Sequential Monte Carlo / Particle Filter), RcppSpdlog (modern logging library), RcppStreams (Event Stream Processing),
RcppTOML (TOML Configuration File
Reader), RcppXts (xts
access at C level), and RcppZiggurat (faster Normal
RNGs).
Applications include anytime for
easier time and date conversion, nanotime for nanosecond resolution (using
RcppCCTZ and RcppDate), and qlcal for QuantLib Calendaring, and dtts building on nanotime (and
data.table
).
Last but not least RInside uses Rcpp
to embed R in a very easy-to-use C++ class for deployment in other
programs.
Also, a long list of (all)
packages (on CRAN) using Rcpp is available.
Other Projects
littler lets R be used in commad-line
scripting, pipes and more.
binb, linl,
pinp, and tint
are all using Markdown to produce pdf (nice than Beamer) slides,
letters, (PNAS-alike) papers or (Tufte) handouts (pdf and html.
Rblpapi connects R to Bloomberg API
(provided you have Bloomberg).
RQuantLib is another relatively
large project connecting R to QuantLib.
BH provides Boost C++ headers for use by
R; AsioHeaders does the same for Asio.
digest provides hash sums of R
objects.
inline makes it easy to inline C, C++,
or Fortran code alongside R.
RPushbullet interfaces the PushBullet notification
service.
RApiSerialize provides the
C-level API for R object serialization; RApiDatetime does the same for some
date/time functions.
pkgKitten makes creating and
writing R packages a breeze.
drat supports lightweight package
repositories.
rfoaas interfaces the excellent FOAAS
service.
random provides true (hardware) RNG
draws.
rmsfact and
gaussfacts offer some (lighthearted)
quotes in the fortune()
tradition.
RDieHarder tests RNGs.
RPostgreSQL connects R to
Postgres (now maintained by Tomoaki Nishiyama).
spdl provides a consistent R and C++
wrapper for logging with spdlog.
td accesses twelvedata APIs over REST.
crc32c provides a hardware-accelerated
crc32c implementation with a software fallback.
tinythemes provides a lightweight
repackaging of ggplot2 themes.
ciiw offers a quick and concise view of
the ‘incoming’ directory at CRAN.
Older projects include the Perl-based BeanCounter (and SMTM) as well as Finance::YahooQuote.