RCCP

Default Packages in R

base

stats

utils

methods

graphics

grDevices

datasets

grid

tools

tcltk

splines

stats4

Installation

Install R(2.13.0) as following-

$./configure --enable-R-shlib --enable-BLAS-shlib --with-ICU --with-x=no

$make

$sudo make install

Now Install Rcpp(0.9.4) and RInside(0.2.3) as following:

$sudo R CMD INSTALL Rcpp_0.9.4.tar.gz

$sudo R CMD INSTALL RInside_0.2.3.tar.gz

and most crucial step...!! edit ~/.bashrc and add following :::

LD_LIBRARY_PATH=/usr/local/lib/R/lib

export LD_LIBRARY_PATH

Hello, world!

#include <R.h>

#include <R_ext/Applic.h>

#include <Rinternals.h>

#include <RInside.h>

// for the embedded R via RInside

int main(int argc, char *argv[])

{

RInside R(argc, argv); // create an embedded R instance

R["txt"] = "Hello, world!\n"; // assign a char* (string) to ’txt’

R.parseEvalQ("cat(txt)"); // eval init string, ignore any returns

exit(0);

}

Addition

#include <RInside.h>

// for the embedded R via RInside

int main(int argc, char *argv[])

{

RInside R(argc, argv);

// create an embedded R instance

R["x"] = 10 ;

R["y"] = 20 ;

R.parseEvalQ("z <- x + y") ;

int sum = R["z"];

std::cout << "10 + 20 = " << sum << std::endl ;

exit(0);

}

Predection

#include <R.h>

#include <R_ext/Applic.h>

#include <Rinternals.h>

#include <RInside.h>

// for the embedded R via RInside

int main(int argc, char *argv[])

{

//create an embedded R instance

RInside R(argc, argv);

//library

R.parseEvalQ("suppressMessages(library(forecast))");

R.parseEvalQ("suppressMessages(library(graphics))");

R.parseEvalQ("suppressMessages(library(stats))");

//Inputs

R["gap"] = 50;

R["start"] = 0;

R["end"] = 200;

R["sum"] = 0;

//read file

R["input_file"]="akiyo.txt";

R["output_file"]="a.txt\n";

R.parseEvalQ("trace=scan(input_file)") ;

R.parseEvalQ("size<-length(trace)") ;

R.parseEvalQ("arr<-trace[start:end]") ;

//forecast

R.["css"]="CSS";

R.parseEvalQ("x_arima<-arima(arr_in,order=c(1,0,1),seasonal=list(order=c(1,1,1),period=16),method=c(css))");

//R.parseEvalQ("x_arima<-arima(arr, order=c(1,0,1),seasonal=list( order=c(1,1,1),period=16))") ;

R.parseEvalQ("b_arima<-forecast(x_arima,gap)") ;

R["x"] = 10 ;

R["y"] = 20 ;

R.parseEvalQ("z <- x + y") ;

float sum[50];

R.parseEvalQ("arr<-c(1:50)") ;

R.parseEvalQ("arr<-b_arima$mean") ;

for(int i=1;i<=50;i++)

{

char txt[50];

sprintf(txt, "z <- arr[%d]; z", i);

sum[i-1] = R.parseEval(txt);

//sprintf(txt, "z <- arr[%d]", i);

//R.parseEvalQ(txt);

//sum[i-1] = R["z"];

}

//for(int i=0;i<50;i++)

//std::cout << "value at "<< i+1<<" : "<< sum[i] << std::endl ;

exit(0);

}

#include <RInside.h>

int main(int argc, char *argv[]) {

RInside R(argc, argv);

float sum[5];//int sum[50];

R.parseEvalQ("arr <- c(1:50)") ;

for(int i=1;i<=5;i++) {

char txt[32];

sprintf(txt, "z <- arr[%d]; z", i);

sum[i-1] = R.parseEval(txt);

//sprintf(txt, "z <- arr[%d]", i);

//R.parseEvalQ(txt);

//sum[i-1] = R["z"];

}

for(int i=0;i<5;i++)

std::cout << "value: " << sum[i] << std::endl ;

exit(0);

}