içerisindeki öğelerine nasıl erişileceği şaşkın.Bir vektörün bir Rcpp :: List
aşağıdaki derlemek ve iyi çalışır: R ise
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
List test(){
List l;
IntegerVector v(5, NA_INTEGER);
l.push_back(v);
return l;
}
:
R) test()
[[1]]
[1] NA NA NA NA NA
Ama listede IntegerVector
ayarlamaya çalıştığınızda:
// [[Rcpp::export]]
List test(){
List l;
IntegerVector v(5, NA_INTEGER);
l.push_back(v);
l[0][1] = 1;
return l;
}
Gelmez derleme:
test.cpp:121:8: error: invalid use of incomplete type 'struct SEXPREC'
C:/PROGRA~1/R/R-30~1.0/include/Rinternals.h:393:16: error: forward declaration of 'struct SEXPREC'
Parfait! Cevabınız için çok teşekkür ederim ! – statquant
Bir soru daha Romain, bir "Rcpp :: List" 'i içeren 'n' (örneğin 3)' std :: vektör 'veya' Rcpp :: IntegerVector' tek liner ile oluşturabilir ('ctor' olabilir), IntegerVector v (3, NA_INTEGER) gibi; Rcpp :: Liste testi (3, v) ' –
statquant
Bu çalışmayı amaçlamaktadır:' List l (3, TamsayıVektör (3, NA_INTEGER)) ', ancak dosyamızın birinde bir yazım hatası var (' fill__dispatch' gibi yazılmıştır fill_dispatch (bir alt çizgi)), bu yüzden başarısız olur. Yerel olarak düzelttim ve düzeltmeyi yakında gerçekleştireceğim. –