Débutant à Rcpp ici. J'ai une liste de vecteur de vecteurs en C++, où je suis en utilisant le vecteur de vecteurs pour représenter une matrice, par exemple de la taille Mi x N
, où i
est de 1 to K
et K
est le nombre d'éléments de la liste:comment puis-je convertir vecteur de vecteur comme matrice dans R en utilisant Rcpp
std::map<double, vector<vector<double> > x;
En variante, pour l'élément 1 de la liste, le vecteur de vecteur est de dimensions M1 x N
, pour l'élément 2 de la liste, le vecteur de vecteur est de dimensions M2 x N
, ..., le vecteur de vecteur est de dimensions MK x N
pour élément K
de la liste.
Comment puis-je convertir en une liste de matrices dans R. Si je tente:
return wrap(x)
Je reçois une liste de la liste des vecteurs, pas la liste des matrices.
Voici un exemple échantillon, où x
en C++ est:
1st element of map:
within that, element of the 1st vector: 1 1 1 1
element of the 2nd vector: 1 1 1 1
element of the 3rd vector: 2 2 2 2
element of the 4th vector: 3 3 3 3
2nd element of map:
within that, element of the 1st vector: 4 4 4 4
element of the 2nd vector: 3 3 3 3
element of the 3rd vector: 2 2 2 2
element of the 4th vector: 5 5 5 5
element of the 5th vector: 1 1 1 1
Si j'essaie return wrap(x)
je reçois dans R (ps indentation ajouté ci-dessous pour rendre la sortie de R plus claire):
$`1`
$`1`[[1]]
[1] 1 1 1 1
$`1`[[2]]
[1] 1 1 1 1
$`1`[[3]]
[1] 2 2 2 2
$`1`[[4]]
[1] 3 3 3 3
$`2`
$`2`[[1]]
[1] 4 4 4 4
$`2`[[2]]
[1] 3 3 3 3
$`2`[[3]]
[1] 2 2 2 2
$`2`[[4]]
[1] 5 5 5 5
$`2`[[5]]
[1] 1 1 1 1
Ce que je veux être retourné dans R est:
$`1`
[,1] [,2] [,3] [,4]
[1,] 1 1 1 1
[2,] 1 1 1 1
[3,] 2 2 2 2
[4,] 3 3 3 3
$`2`
[,1] [,2] [,3] [,4]
[1,] 4 4 4 4
[2,] 3 3 3 3
[3,] 2 2 2 2
[4,] 5 5 5 5
[5,] 1 1 1 1
serait le moyen le plus efficace de le faire dans RCpp?