## A few things learned about R and Rcpp

Written down here for future reference:

• Order of functions is important for R reference class, setRefClass should come first, and initialize should come last. This is especially important when you split your code into multiple files. I will list the file structure of my rbed package’s R directory here as an demonstration. You see I have prefixed my R files with numbers to assure the loading order is correct:

•     R
├── 1Rbed_class.R
├── 2Rbed_utils.R
├── 3Rbed_bedmat.R
├── 4Rbed_init.R
└── RcppExports.R

0 directories, 5 files

• Rcpp is not very smart at typedefs, if you define a shorthand for a very long type, it will complain that the type is unknown, so, never use typedefs with Rcpp / RcppArmadillo. (But things may get better in the future, since these are being actively developed.)

• If your c++ function isn’t available in R, check if you have added a // [[Rcpp::export]] line right above you function definition.