Calling Functions in the R Language


Call R Packages and Graphics from IMLPlus

You do not need to do anything special to call an R package. Provided that an R package is installed, you can call library(package) from inside a SUBMIT block to load the package. You can then call the functions in the package.

Similarly, you do not need to do anything special to call R graphics. The graph appears in the standard R graphics window.

The example in this section calls an R package and creates a graph in R.

In Chapter 6: Adding Curves to Graphs, you called the KDE procedure to compute a kernel density estimate for the min_pressure variable in the Hurricanes data set. The following program reproduces that analysis by calling functions in the KernSmooth package and creating a histogram in R:

declare DataObject dobj;
dobj = DataObject.CreateFromFile("Hurricanes");
dobj.GetVarData("min_pressure", p);
run ExportMatrixToR( p, "Pressure" );

submit / R;
   library(KernSmooth)
   idx <-which(!is.na(Pressure))     # must exclude missing values (NA)
   p <- Pressure[idx]                #    from KernSmooth functions
   h = dpik(p)                       # Sheather-Jones plug-in bandwidth
   est <- bkde(p, bandwidth=h)       # est has 2 columns

   hist(p, breaks="Scott", freq=FALSE, col="lightyellow") # histogram
   lines(est)                                             # kde overlay
endsubmit;

The program creates an R matrix Pressure from the data in the min_pressure variable. Because the functions in the KernSmooth package do not handle missing values, the nonmissing values in Pressure must be copied to a matrix p. The Sheather-Jones plug-in bandwidth is computed by calling the dpik function in the KernSmooth package. This bandwidth is used in the bkde function (in the same package) to compute a kernel density estimate.

The hist function creates a histogram of the data in the p matrix, and the lines function adds the kernel density estimate contained in the est matrix.

The R graphics window contains the histogram, which is shown in Figure 11.5. You can compare the histogram and density estimate created by R with the IMLPlus graph shown in Figure 6.4.

Figure 11.5: R Graphics

R Graphics