探索 rcpp 中分类向量的元素

explore elements of a categorical vector in rcpp

我的问题很简单,但我是 RCPP 的新手,还没有掌握。我想创建一个函数,给定一个分类向量和两个整数 returns 这两个整数之间的向量内容的子集。你知道,["A","B","C",“D] 和 1 和 2,returns 我 ["B","C"]。 我做了下一个代码,但没有用。

// [[Rcpp::export]]
Rcpp::StringVector Segment(Rcpp::StringVector x, int start, int end) {
  Rcpp::StringVector s(end-start+1);
  for(int i=start; i <= end; i++){
    s[i]=x[i];
    }
  return(s);
}

尝试使用CharacterVector。解决方案可能是这样的。

// [[Rcpp::export]]
CharacterVector Segment( CharacterVector x, int start, int end){
  CharacterVector r(end-start+1);
  int ind=0;
  for( int i=0; i<=r.size(); i++){
    if((i>=start) & (i<=end)){
      r[ind]=x[i];
      ind+=1;
    }
  }
  return(r);
}