Logo ROOT  
Reference Guide
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Loading...
Searching...
No Matches
example.C File Reference

Detailed Description

View in nbviewer Open in SWAN
Simple example on how to use ROOT-R interface.

#include "TMath.h"
#include "Math/PdfFunc.h"
#include "TMatrixD.h"
#include "TError.h"
#include <array>
#include <vector>
#include "TRInterface.h"
void example() {
// print R version
r.Execute("print(version$version.string)");
// compute standard deviation of 1000 vector normal numbers
double std_dev_r = r.Eval("sd(rnorm(10000))");
std::vector<double> v = r.Eval("rnorm(10000)");
double std_dev_root = TMath::StdDev(v.begin(),v.end());
std::cout << "standard deviation from R = " << std_dev_r << std::endl;
std::cout << "standard deviation from ROOT = " << std_dev_root << std::endl;
Error("ROOT-R-Example","Different std-dev found");
// use << to execute the R command instead of Execute
r << "mat<-matrix(c(1,2,3,4,5,6),2,3,byrow=TRUE)";
TMatrixD m = r["mat"];
std::array<double,6> a = r.Eval("seq(1:6)");
TMatrixD m2(2,3,a.data());
if (!(m==m2)) {
Error("ROOT-R-Example","Different matrix found");
m.Print();
m2.Print();
}
// example on how to pass ROOT objects to R
std::vector<double> v_root{1,2,3,4,5,6,7,8};
r["v"] = v_root;
r << "v2<-seq(1:8)";
bool isEqual = r.Eval("prod(v==v2)");
if (!isEqual) {
Error("ROOT-R-Example","Different vector created");
r << "print(v)";
r << "print(v2)";
}
// example on how to pass functions to R
r["gaus_pdf"] = ROOT::Math::normal_pdf;
r << "y<-gaus_pdf(0,1,1)";
double value_r = r["y"];
std::cout << "Function gaussian(0,1,1) evaluated in R = " << value_r << std::endl;
std::cout << "Function gaussian(0,1,1) evaluated in ROOT = " << value_root << std::endl;
Error("ROOT-R-Example","Different function value found in r = %f and ROOT = %f", value_r, value_root);
}
#define a(i)
Definition RSha256.hxx:99
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
Definition TError.cxx:185
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
ROOT R was implemented using the R Project library and the modules Rcpp and RInside
static TRInterface & Instance()
static method to get an TRInterface instance reference
void Print(Option_t *option="") const override
Dump this marker with its attributes.
Definition TMarker.cxx:339
double normal_pdf(double x, double sigma=1, double x0=0)
Probability density function of the normal (Gaussian) distribution with mean x0 and standard deviatio...
Bool_t AreEqualAbs(Double_t af, Double_t bf, Double_t epsilon)
Comparing floating points.
Definition TMath.h:418
Double_t StdDev(Long64_t n, const T *a, const Double_t *w=nullptr)
Definition TMath.h:531
TMarker m
Definition textangle.C:8
Author

Definition in file example.C.