Rcpp提取数据帧的行

Rcpp提取数据帧的行,r,rcpp,R,Rcpp,是否有任何简单的语法可以提取RCpp中的数据帧行(仅包含数值),作为数据帧类的一部分或其他类 目前,我一直在做以下工作: DataFrame myFunc(DataFrame& x) { ... // Suppose I need to get the 10th row int nCols=x.size(); std::vector<double> y; y.reserve(nCols); for (int j=0; j<nCols;j++)

是否有任何简单的语法可以提取RCpp中的数据帧行(仅包含<代码>数值),作为数据帧类的一部分或其他类

目前,我一直在做以下工作:

DataFrame myFunc(DataFrame& x) {
  ...

  // Suppose I need to get the 10th row
  int nCols=x.size();
  std::vector<double> y;
  y.reserve(nCols);
  for (int j=0; j<nCols;j++) {
    y.push_back((as<vector<double> >(x[j]))[9]); // index in C++ starts at 0
  }

  ...
}
DataFrame myFunc(DataFrame&x){
...
//假设我需要坐第十排
int nCols=x.size();
std::向量y;
y、 储备(nCols);

对于(int j=0;j没有数据帧行这样的东西,它实际上只存在。因此,您所拥有的与您应该做的非常接近。但是,您应该使用
NumericVector
而不是
std::vector
,它几乎不需要任何费用就可以复制列中的所有数据

更新的伪代码:

DataFrame myFunc(DataFrame& x) {
    ...

    // Suppose I need to get the 10th row
    int nCols=x.size();
    NumericVector y(nCols);
    for (int j=0; j<nCols;j++) {
        NumericVector column = x[j] ;
        y[i] = column[9] ;
    }

    ...
}       
DataFrame myFunc(DataFrame&x){
...
//假设我需要坐第十排
int nCols=x.size();
数值向量y(nCols);

对于(int j=0;j没有数据帧行这样的东西,它实际上只存在。因此,您所拥有的与您应该做的非常接近。但是,您应该使用
NumericVector
而不是
std::vector
,它几乎不需要任何费用就可以复制列中的所有数据

更新的伪代码:

DataFrame myFunc(DataFrame& x) {
    ...

    // Suppose I need to get the 10th row
    int nCols=x.size();
    NumericVector y(nCols);
    for (int j=0; j<nCols;j++) {
        NumericVector column = x[j] ;
        y[i] = column[9] ;
    }

    ...
}       
DataFrame myFunc(DataFrame&x){
...
//假设我需要坐第十排
int nCols=x.size();
数值向量y(nCols);
对于(int j=0;j)的可能重复。另请参阅的可能重复。另请参阅