R语言学习初识Rcpp类型List
短信预约 -IT技能 免费直播动态提醒
当我们想将 Rcpp
中的多种类型的对象通过一个 return
函数返回时,此时就需要将我们的所有对象整理成一个 Rcpp::List
型,然后再进行返回。
但相比于 R 中的 list(mat1 = mat1, mat2 = mat2)
,Rcpp
中的列表创建就相对复杂一些,需要使用 create()
函数,如下面例子所示:
Rcpp::List ListFun(MatrixXd X) {
Eigen::MatrixXd mat1, mat2;
return List::create(Named("matrix1") = mat1, Named("matrix2") = mat2);
}
在 return
之后,我们想要在我们的 .cpp
文件中再调用这个 List
(或者直接读取 R 中的 list
类型均可),这时我们应该怎么做呢?
其实也非常简单,分两步即可:第一步创建 List
,第二步分别创建 List
中的内容,对象类型对应上即可,如下所示:
void TestFun(MatrixXd X, MatrixXd Y) {
Rcpp::List result_x, result_y;
result_x= ListFun(X);
result_y= ListFun(Y);
MatrixXd mat1_x = result_x["matrix1"];
MatrixXd mat1_y = result_y["matrix1"];
MatrixXd mat2_x = result_x["matrix2"];
MatrixXd mat2_y = result_y["matrix2"];
}
以上就是R语言学习初识Rcpp类型List的详细内容,更多关于R语言Rcpp初识List类型的资料请关注编程网其它相关文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341