ROOT
6.10/09
Reference Guide
tutorials
r
Function.C File Reference
Tutorials
»
R tutorials
Detailed Description
using namespace
ROOT::R
;
void
Function
()
{
auto
&r =
ROOT::R::TRInterface::Instance
();
r.SetVerbose(1);
// Defining functions to be used from R
TRFunctionImport
c(
"c"
);
TRFunctionImport
rlist(
"list"
);
TRFunctionImport
asformula(
"as.formula"
);
TRFunctionImport
nls(
"nls"
);
TRFunctionImport
confint(
"confint"
);
TRFunctionImport
summary(
"summary"
);
TRFunctionImport
print(
"print"
);
TRFunctionImport
plot(
"plot"
);
TRFunctionImport
lines(
"lines"
);
TRFunctionImport
devnew(
"dev.new"
);
TRFunctionImport
devoff(
"dev.off"
);
TRFunctionImport
devcur(
"dev.cur"
);
TRFunctionImport
rmin(
"min"
);
TRFunctionImport
rmax(
"max"
);
TRFunctionImport
seq(
"seq"
);
TRFunctionImport
predict(
"predict"
);
r<<
"options(device='pdf')"
;
// doing the procedure
TRObject xdata = c(-2,-1.64,-1.33,-0.7,0,0.45,1.2,1.64,2.32,2.9);
TRObject ydata = c(0.699369,0.700462,0.695354,1.03905,1.97389,2.41143,1.91091,0.919576,-0.730975,-1.42001);
TRDataFrame
data
;
data[
"xdata"
]=xdata;
data[
"ydata"
]=ydata;
// fit = nls(ydata ~ p1*cos(p2*xdata) + p2*sin(p1*xdata), start=list(p1=1,p2=0.2))
TRObject fit = nls(asformula(
"ydata ~ p1*cos(p2*xdata) + p2*sin(p1*xdata)"
),
Label
[
"data"
]=data,
Label
[
"start"
]=rlist(
Label
[
"p1"
]=1,
Label
[
"p2"
]=0.2));
print(summary(fit));
print(confint(fit));
if
(!
gROOT
->IsBatch()) {
devnew(
"Fitting Regression"
);
plot(xdata,ydata);
TRObject xgrid=seq(rmin(xdata),rmax(xdata),
Label
[
"len"
]=10);
lines(xgrid,predict(fit,xgrid),
Label
[
"col"
] =
"green"
);
devoff(
Label
[
"which"
] = devcur() );
}
}
Author
Definition in file
Function.C
.