2016-10-18 5 views
0

私の質問は簡単ですが、私はRCPPで新しく、まだマスターしていません。私はカテゴリベクトルを与え、2つの整数が2つの整数の間のベクトル内容の部分集合を返す関数を作りたがっていました。 次のコードを実行しましたが、機能しません。rcppでカテゴリベクトルの要素を探索

私は次のコードを実行しましたが、動作しません。 Rcppが要因のために、専用のタイプを持っているか、発注しません
// [[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); 
} 
+0

。あなただけのレベルのベクトル上で動作することができます。IntegerVectorを示唆することになります。 –

答えて

0

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); 
}