Rcpp and Roxygen2
[This article was first published on r - Brandon Bertelsen, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Instructions for using Rcpp and Roxygen2 together. This assumes that Roxygen2 is managing your namespace:
DESCRIPTION
- In your
DESCRIPTION
file, add the lineLinkingTo: Rcpp
- Also ensure that you import Rcpp,
Imports: Rcpp
along with all the other packages are imported in your namespace.
Package Documentation
Your package documentation (by convention in zzz.R
or package.R
) you should have the following:
#' your_package #' #' Description of your package #' #' @docType package #' @author you <youremail> #' @import Rcpp another_package another #' @importFrom Rcpp evalCpp #' @useDynLib your_package #' @name your_package NULL
Functions
- Add
*.cpp
files to/src
directory. - Remember to use
//'
as your comment so thatRoxygen2
picks it up appropriately. - Remember to include
[[Rcpp:export]]
so that it is picked up byRcpp::compileAttributes()
when you build and reload or runroxygenize()
manually as per your project options
#include <Rcpp.h> using namespace Rcpp; //' Leading NA //' //' This function returns a logical vector identifying if //' there are leading NA, marking the leadings NA as TRUE and //' everything else as FALSE. //' //' @param x An integer vector //' @export // [[Rcpp::export]] LogicalVector leading_na(IntegerVector x) { int n = x.size(); LogicalVector leading_na(n); int i = 0; while((i < n) &&(x[i] == NA_INTEGER)) { leading_na[i] = TRUE; i++; } return leading_na; }
To leave a comment for the author, please follow the link and comment on their blog: r - Brandon Bertelsen.
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.