Skip to content

An interface for node.js to statistical programming language R based on the fabulous Rcpp package

License

Notifications You must be signed in to change notification settings

ersmo/node-Rstats

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NPM version

node-Rstats

An interface for node.js to statistical programming language R based on the fabulous Rcpp package

Installation

Currently, rstats is ONLY supported for Unix operating systems.

Also, it is required that the R packages RInside, Rcpp and RJSONIO are installed inside R. Additionally, building the package using node-gyp requires

  • python (v2.7, v3.x.x is not supported)
  • make
  • A C/C++ compiler toolchain, such as GCC

With these prerequisites satisfied, one can simply install rstats using npm

npm install rstats

Getting Started

After installation, the package can be loaded as follows:

var rstats  = require('rstats');

Once the package is loaded, we can create an R session by the command

var R  = new rstats.session(); 

Important Functions

parseEvalQ

Evaluating R expressions is easy. We can use the parseEvalQ function as follows:

R.parseEvalQ("cat('\n Hello World \n')");

assign

Numeric values can be easily assigned to variables in the current R session:

R.assign('x', 17);
R.assign('y', 3);

// calculate the sum of x+y and print the result
R.parseEvalQ("res = x + y; print(res);");

get

To retrieve an object from the R session, we use the get command. For example, let us create a 2x2 matrix in R and retrieve it in JavaScript as a nested array:

R.parseEvalQ("mat = matrix(1:4,ncol=2,nrow=2)");
var mat = R.get('mat');

Internally, the get function uses JSON in order to convert the R data types to JavaScript data types.

We can also run much more complicated calculations and expose the R objects to JavaScript. Consider a linear regression example:

R.parseEvalQ('x = rnorm(100); y = 4x + rnorm(100); lm_fit = lm(y~x);');
var lm_fit = R.get('lm_fit');
var coefs = lm_fit.coefficients;
var residuals = lm_fit.residuals;

About

An interface for node.js to statistical programming language R based on the fabulous Rcpp package

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 98.9%
  • C 1.1%