2

我有这个代码

 // [[Rcpp::export]]
void testDf(Rcpp::DataFrame pq)
{
  Rcpp::NumericVector p = pq[1];
  std::cout<<p[2]<<std::endl;
}

这是访问特定列的虚拟行元素的正确方法。但如果我这样做

// [[Rcpp::export]]
void testDf(Rcpp::DataFrame pq)
{
  std::cout<<pq[1][2]<<std::endl;
 }    

它返回给我一个operator[] is ambiguous的错误。但如果我们看到,DataFrame 只是一组向量。从数据结构的角度来看,DataFrame 将保存指向向量集的指针。因此[]运算符将返回一个指针,我可以通过取消引用进一步访问指针的不同元素。如果我错了,请纠正我。刚开始使用很棒的 Rcpp 包。我很少有这样的理论问题。我将不胜感激。

4

0 回答 0