19 ROOT::R::TRInterface &r = ROOT::R::TRInterface::Instance();
21 r.Execute(
"print(version$version.string)");
25 double std_dev_r = r.Eval(
"sd(rnorm(10000))");
26 std::vector<double> v = r.Eval(
"rnorm(10000)");
27 double std_dev_root = TMath::StdDev(v.begin(),v.end());
28 std::cout <<
"standard deviation from R = " << std_dev_r << std::endl;
29 std::cout <<
"standard deviation from ROOT = " << std_dev_root << std::endl;
30 if (!TMath::AreEqualAbs(std_dev_r,std_dev_root,0.1))
31 Error(
"ROOT-R-Example",
"Different std-dev found");
34 r <<
"mat<-matrix(c(1,2,3,4,5,6),2,3,byrow=TRUE)";
35 TMatrixD m = r[
"mat"];
36 std::array<double,6> a = r.Eval(
"seq(1:6)");
37 TMatrixD m2(2,3,a.data());
40 Error(
"ROOT-R-Example",
"Different matrix found");
46 std::vector<double> v_root{1,2,3,4,5,6,7,8};
49 bool isEqual = r.Eval(
"prod(v==v2)");
51 Error(
"ROOT-R-Example",
"Different vector created");
58 r[
"gaus_pdf"] = ROOT::Math::normal_pdf;
60 r <<
"y<-gaus_pdf(0,1,1)";
61 double value_r = r[
"y"];
62 double value_root = ROOT::Math::normal_pdf(0,1,1);
63 std::cout <<
"Function gaussian(0,1,1) evaluated in R = " << value_r << std::endl;
64 std::cout <<
"Function gaussian(0,1,1) evaluated in ROOT = " << value_root << std::endl;
65 if (value_r != value_root)
66 Error(
"ROOT-R-Example",
"Different function value found in r = %f and ROOT = %f", value_r, value_root);