首页 > 解决方案 > Rcpp中嵌套列表的绑定元素

问题描述

几天前我问过这个问题,但没有给出可重现的例子(对此感到抱歉),所以在这里我再次询问重现它所需的实际代码。

我目前在 Rcpp 中有一个嵌套列表,类似于此处生成的列表:

#include <Rcpp.h>
using namespace Rcpp;

// [[Rcpp::export]]
List listGenerate() {
  List firstLayer(3);
  List secondLayer(3);
  for (int i=0; i<3; i++){
    NumericVector myVec = NumericVector::create(1,2,3);
    NumericMatrix myMat = cbind(myVec, myVec);
    firstLayer(i) = myMat;
    for (int j=0; j<3; j++){
      secondLayer(j) = firstLayer;
    }
  }
  return secondLayer;
}

这会产生一个嵌套的矩阵列表,我想将它们按行绑定在一起。通常在 R 中可以这样做来实现:

unlisted_first_layer <- unlist(listGenerate(), recursive = F)
do.call(rbind, unlisted_first_layer)

但是我在尝试在 Rcpp 中做同样的事情时遇到了麻烦。是否有任何语法糖可以使这个过程更容易一些?对此的任何帮助将不胜感激,谢谢!

标签: rrcpp

解决方案


推荐阅读