RcppExample {RcppTemplate}R Documentation

Rcpp R/C++ interface example

Description

RcppExample illustrates how the Rcpp R/C++ interface class library is used.

Usage

RcppExample(params, nlist, numvec, nummat, df, datevec, stringvec)
print.RcppExample()

Arguments

params A heterogeneous list specifying method (string), tolerance (double), maxIter (int)
nlist a list of named numeric values (double or int)
numvec a numeric 1D vector (double or int)
nummat a numeric 2D matrix (double or int)
df a data frame
datevec a vector of Date's
stringvec a vector of strings

Details

The C++ represention of data frames are not passed back to R in a form that R recognizes as a data frame, but it is a simple matter to do the conversion. For example, the return value named PreDF (see return values below) is not seen as a data frame on the R side (thus the name "pre-data frame"), but it can be converted to a data frame using df <- data.frame(result$PreDF).

The print.RcppExample() function is defined so that we can control what gets printed when a variable assigned the return value is entered on a line by itself. It is defined to simply list the names of the fields returned (see RcppExample.R).

The source files for this example and for the Rcpp class library can be found in the RcppTemplate package source archive (the .tar.gz file).

Value

RcppExample returns a list containing:

method string input paramter
tolerance double input paramter
maxIter int input parameter
nlFirstName first name in nlist
nlFirstValue first value in nlist
matD R matrix from an RcppMatrix<double> object
stlvec R vector from a vector<double> object
stlmat R matrix from a vector<vector<double> > object
a R matrix from C/C++ matrix
v R vector from C/C++ vector
strings R vector of strings from vector<string> object
InputDF a data frame passed in from R
PreDF a data frame created on C++ side to be passed back to R
params input parameter list (this is redundant because we returned the input parameters above)

Author(s)

Dominick Samperi

References

Samperi, D., (2006) Rcpp: R/C++ Interface Classes: Using C++ Libraries from R, available as a package vignette, or in the RcppTemplate package doc subdirectory (RcppAPI.pdf).

Writing R Extensions, available at http:www.r-project.org.

Examples


params <- list(method='BFGS',
               tolerance=1.0e-8,
               maxIter=1000,
               startDate=as.Date('2006-7-15'))

nlist <- list(ibm = 80.50, hp = 53.64, c = 45.41)

numvec <- seq(1,5) # numerical vector

nummat <- matrix(seq(1,20),4,5) # numerical matrix

stringvec <- c("hello", "world", "fractal") # string vector

# Note that we need to escape the percent sign here...
datestr <- c('2006-6-10', '2006-7-12', '2006-8-10')
datevec <- as.Date(datestr, "%Y-%m-%d") # date vector

df <- data.frame(a=c(TRUE, TRUE, FALSE), b=I(c('a','b','c')),
c=c('beta', 'beta', 'gamma'), dates=datevec)

result <- RcppExample(params, nlist, numvec, nummat, df, datevec, stringvec)

result


[Package RcppTemplate version 4.2 Index]