这篇文章主要为大家介绍了R语言中Rcpp与Eigen库之间的相互转换的技巧操作,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
当我们在使用时,进行矩阵运算最简单的是使用库进行相关操作,可以很轻松地讲R中向量化与矩阵化的思想应用到C++代码上,从而对代码进行加速。可参考前面的博客:。
但有时,我们却必须使用Rcpp
进行DataFrame,List等对象格式的处理。或者如果我们涉及到缺失值的处理,也需要使用Rcpp
中的函数来做。
所以,如何在两种矩阵或向量格式,NumericVector/Matrix与VectorXd/MatrixXd之间相互转化就变得非常重要。
我们可以首先使用Eigen
库中的VectorXd/MatrixXd对矩阵进行运算,然后再转化为Rcpp
中的NumericVector/Matrix,继而我们便可使用Rcpp
中的函数了。
具体做法其实参考了下面的文章:
具体解决方法
以一个最简单的NumericMatrix转化为MatrixXd格式为例:
发表评论